地球号的角色系统
地球号的角色表维持地球号的角色系统根据地。地球号的角色分三部分: 户群级的角色,企业级角色,店铺角色。
角色在角色表中的颜色和意义。
地球号平台的公共角色,都存放在XdUaXduA社区里,用颜色区分出来。其它社区想要用这个公共角色,通过qryRole接口就能获取。
颜色 | 名称 | 描述 |
---|---|---|
X | 系统角色 | 社群模板角色,所有创建的社群,在创建的那一刻,就要给创建者赋予所有X角色 |
R | 社区模板角色 | 社群模板角色,所有创建的社群,在创建的那一刻,就要给创建者赋予所有X角色 |
G | 企业模板角色 | 企业在创建的那一刻,就要给创建者自己赋予所有Y角色 |
B | 店铺模板角色 | 店铺在创建的那一刻,就要给创建者自己赋予所有Z角色,在role表中,每个社区下的店铺一份 |
A | 社区自定角色 | 每个社区自己定义的角色 |
B | 企业自定角色 | 每个企业自己定义的角色 |
C | 店铺自定角色 | 每个店铺自己定义的角色 |
[!note:X是共享角色] X角色是神社共享角色,Y是企业共享角色。
当一个令牌来到的时候,我们会根据令牌的用户在目标店铺的角色来决定他的权限组合,这个时候,会怎么根据它的role_code来查?
这个时候要考虑社区id吗?
查询条件应该是zone_id in ["XdUaXduA","自己现在这个企业ID","自己现在在的店铺ID","自己现在在的社区ID"],因为有些公共角色放在神社里。这个观点要推翻上面的角色模板说法。
如果AddRoler持有R色令牌非得在自己的社区创建一个叫God的角色怎么办?
如果我们在程序中限制它创建名为God
的角色,但是在未来,系统想增加一个叫"Stater"的角色,发现有的社区都已经创建了,怎么办?想要保证不冲突,怎么办?我们对用户自己创建角色,都加一个rg*,rb*的前缀
角色分类 | 名称 | 描述 |
---|---|---|
户群级角色 | 系统级,全局定义,不能自定义,system属性为1 | 群主,只有一个,仅仅拥有授权和管理god的权限。 |
企业级系统角色 | system为1 | 创建店铺,配置CEO, 查询企业数据概览 |
企业级个性角色 | system为0 | 暂时不需要支持,也就是企业是无法添加自己的角色的 |
店铺级系统角色 | system为1 | king,店长,帮手。keeper,对于每个特殊用途的户群,例如养老通,这个地方内置:老人,护工,义工,评估师等各种内置角色 |
店铺级个性角色 | system为0 | 店铺可以自己添加自己的角色。 |
如下的都是系统角色
角色名 | 名称 | 描述 |
---|---|---|
root | 户群超级管理员 | 群主,每个户群只有一个,权限只有设置god |
god | 户群次级管理员 | 次管,每个户群可由多个,权限除了设置god外,其它与root同级 |
none | 户群默认注册员 | 户群普通注册用户 |
king | 企业创建人 | 企业的创建角色, 一个企业只有一个 |
ceo | 企业管理人 | 企业的管理者, 一个企业由多个 |
lord | 店铺创建人 | 店铺的创建者, |
help | 店铺管理人 | 店铺可管理者, |
户群级是不需要个性角色的。
这里需要好好想想,到底需不需要让拥有企业级角色?企业级是不是通过一个creator_id和一个admin_id来管理就可以了,就不需要企业级角色来做事了?企业级的admin_id就可以创建店铺了。在用角色还是用admin_id这样的字段两种手段之间,一直很犹豫。最后决定选择用角色
这里面要记住,登录户群是一次登录,登录企业是一次登录,登录店铺是一次登录,既然是三种登录,就需要走同样的机制。
问题1,店铺设计是有内置系统角色的,包括老人,护工,义工等。这些角色在产品上线前,应该已经定死了。每个店铺有权限修改这些角色的名字。如果在系统升级的时候增加一个系统角色,就需要所有店铺立刻遍历表格更新角色。
1. 店铺角色设置
店铺的角色是通过AddRoleb来设置的,管理方是Shep,注意,Butler没有权限管理店铺角色。