1、1、角色分为两种类型: (1)role_表存储所有角色,其中type_ = 1表示是常规角色, type_=2表示是communities角色 (2)常规角色的Actions有:Permissions、Define Permissions、Assign Members、View Users; 而社区角色的Actions只有:Permissions、Define Permissions; (3)对于上述几个默认的角色,我们不能修改,也不能删除; 对于我们自己创建的角色,可以修改,可以删除; 2、为什么Administrator角色不需要Define Permission
2、s? 为什么社区角色Community Member能够Define Permissions,而社区角色Community Administrator和Community Owner却不能Define Permissions? Community Administrator、Community Owner和Administrator(Regular Role)一样,都不能定义权限;换句话说,这三个角色的权限,不需要存储在数据库的Roles_Permissions表中,在权限开发的时候就已经预定义好了,并保存在XML文件或资源文件中,那么究竟保存在哪里? 经过查找,不在资源文件中;
3、经过查找,也不在XML文件中,尚未解决 3、比较几个默认角色下的用户情况: (1)Administrator角色: 查询语句: select * from dbo.Users_Roles where roleId = 10 查询结果: (2)Guest角色: 查询语句: select * from dbo.Users_Roles where roleId = 11 查询结果: (3)Power User角色: 查询语句: select * from dbo.Users_Roles where roleId = 12 查询结果: (4)User角色:
4、 查询语句: select * from dbo.Users_Roles where roleId = 13 查询结果: (5)Community Administrator角色: 查询语句: select UserGroupRole.userId, Group_.name, Role_.name, Role_.type_ from UserGroupRole, Group_, Role_ where UserGroupRole.groupId = Group_.groupId and UserGroupRole.roleId = Role_.roleId 查
5、询结果: (6)Community Member角色:见(5) (7)Community Owner角色:见(6) 总结: (1)新增一个用户后,会默认被指派给角色:Power User和User,如下图所示: (2)表Users_Roles存储用户与Regular Role的信息; 表UserGroupRole存储用户与Community Role的信息; 4、比较几个默认角色下的默认权限情况: (1)Administrator角色: 在【Enterprise Admin】Portlet中看不到,目前还不知道对于Administrator角色是
6、如何定义权限的,定义在哪里? (2)Guest角色: 默认情况下没有任何权限,如下图所示: (3)Power User角色: 默认情况下没有任何权限,需要自定义。 (4)User角色: 默认情况下没有任何权限,需要自定义。 (5)Community Administrator角色: 在【Enterprise Admin】Portlet中看不到,目前还不知道对于Administrator角色是如何定义权限的,定义在哪里? (6)Community Member角色: 默认情况下没有任何权限,需要自定义。 (7)Community Owner角色: 在【Ente
7、rprise Admin】Portlet中看不到,目前还不知道对于Administrator角色是如何定义权限的,定义在哪里? 5、为什么要将角色分为两类?以用户为例,试想登录后如何控制其权限? (1)在Liferay中将角色分为Regular Role和Community Role,一个用户可以被指派给一个或多个Regular Role,也可以被指派给一个或多个Community Role; (2)Regular Role和Community Role的相同之处: 定义权限(Define Permissions)的方式都是一样的; Regular Role和Community
8、Role的不同之处: 第一:把角色指派给用户的方式不同,Regular Role可以把角色指派给任何用户,而Community Role把角色指派给用户的时候,必须先选定一个社区,换句话说,只能指派给选定社区下的用户; 第二:可以指派的范围不同:Regular Role可以把角色指派给用户、组织、地区、用户组、社区等;Community Role只能把角色指派给用户,不能指派给组织、地区、用户组、社区等。 (3)一般来说,当一个用户登录系统后,查找它属于哪些Regluar Role(见表Users_Roles)和哪些Community Role(见表UserGroupRole),通过这些
9、角色获得权限; 6、把用户指派给Regular Role和把用户指派给Community Role的方式比较: (1)把用户指派给Regular Role 通过【Enterprise Admin】Portlet,如下图所示: 请注意:在【Enterprise Admin】Portlet中,选中一个社区角色后,在此并不能像Regular Role一样可以Assign Members; (2)把用户指派给Community Role 通过【Community】Portlet,如下图所示: 下一步,请注意:在此可选的用户都是在上一步中所选中的社区My Community
10、 1下的用户。 两者不同之处: (1)对于Community Role来说,要给用户指派一个角色,必须首先选中一个社区;对于Regular Role来说不需要这么做。 (2)对于Community Role来说,只能把社区角色指派给用户,而不能指派给组织、地区、用户组、社区; 对于Regulare Role来说,可以把角色指派给用户、组织、地区、用户组、社区等; 给社区角色指派用户: 给Regular Role Assign Member; 7、比较给角色分配权限和给社区分配权限: (1)角色赋权――给Regular Role赋权 (2)角色赋权―
11、―给Community Role赋权 (3)社区赋权――(误解:给组织机构赋权;正确的理解:给当前社区下的用户赋权) 通过社区的【Assign User Permissions】,给当前社区下的用户分配权限; 第一步,如下图所示: 第二步,选择一个资源(Portlet),如下图所示: 第三步:选择该社区下的用户,如下图所示: 第四步:设置对资源的操作,如下图所示: 经过测试,给用户分配权限不成功,表Users_Permissions和表Groups_Permissions都没有变化; 8、为什么可以把Regular Role指派给用户、组织、地区、
12、用户组、社区,而对于Community Role却只能指派给用户,不能指派给组织、地区、用户组、社区? 暂时无法解答 9、为什么一个用户加入一个社区后,会自动加入默认的社区角色Community Member,见表UserGroupRole; 为什么一个组织、地区、用户组加入社区后,不会自动加入默认的社区角色Community Member?见表OrgGroupRole 暂时无法解答 10、如何看一个用户拥有哪些角色?如何将一个用户退出某个角色? (1)看一个用户拥有哪些角色: 参见下述内容。 (2)将一个用户退出某个角色有两种方式: 方式一:在【Enterp
13、rise Admin】Portlet的【Roles】标签页中选定角色,点击【Assign Members】,选中用户,点击【Update Associations】,如下图所示: 方式二:在【Enterprise Admin】Portlet的【Users】标签页中选定用户,在【Actions】中选定【Edit】,选定一个角色后,点击【Remove】即可退出该角色,如下图所示: 11、Liferay中角色的继承关系 (1)Liferay中的角色不存在继承关系; (2)Liferay中角色的继承通过Group来体现,所以不考虑Role的继承关系,但Role可以与相关的Group相关联,便于授权。 12、存在的疑问: (1)用户可以扮演多个角色,即用户可以被指派给多个角色,将某一角色授予某一用户后,用户的权限不能超越角色的权限,但可以小于该角色的权限。对此不太明白。
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818