1、角色分为两种类型:(1)role_表存储所有角色,其中type_=1表示是常规角色,type_=2表示是communities角色(2)常规角色的Actions有:Permissions、DefinePermissions、AssignMembers、ViewUsers;而社区角色的Actions只有:Permissions、DefinePermissions;(3)对于上述几个默认的角色,我们不能修改,也不能删除;对于我们自己创建的角色,可以修改,可以删除;2、为什么Administrator角色不需要DefinePermissions?为什么社区角色CommunityMember能够DefinePermissions,而社区角色CommunityAdministrator和CommunityOwner却不能DefinePermissions?CommunityAdministrator、CommunityOwner和Administrator(RegularRole)一样,都不能定义权限;换句话说,这三个角色的权限,不需要存储在数据库的Roles_Permissions表中,在权限开发的时候就已经预定义好了,并保存在XML文件或资源文件中,那么究竟保存在哪里?经过查找,不在资源文件中;经过查找,也不在XML文件中,尚未解决3、比较几个默认角色下的用户情况:(1)Administrator角色:查询语句:select*fromdbo.Users_RoleswhereroleId=10查询结果:(2)Guest角色:查询语句:select*fromdbo.Users_RoleswhereroleId=11查询结果:(3)PowerUser角色:查询语句:select*fromdbo.Users_RoleswhereroleId=12查询结果:(4)User角色:查询语句:select*fromdbo.Users_RoleswhereroleId=13查询结果:(5)CommunityAdministrator角色:查询语句:selectUserGroupRole.userId,Group_.name,Role_.name,Role_.type_fromUserGroupRole,Group_,Role_whereUserGroupRole.groupId=Group_.groupIdandUserGroupRole.roleId=Role_.roleId查询结果:(6)CommunityMember角色:见(5)(7)CommunityOwner角色:见(6)总结:(1)新增一个用户后,会默认被指派给角色:PowerUser和User,如下图所示:(2)表Users_Roles存储用户与RegularRole的信息;表UserGroupRole存储用户与CommunityRole的信息;4、比较几个默认角色下的默认权限情况:(1)Administrator角色:在【EnterpriseAdmin】Portlet中看不到,目前还不知道对于Administrator角色是如何定义权限的,定义在哪里?(2)Guest角色:默认情况下没有任何权限,如下图所示:(3)PowerUser角色:默认情况下没有任何权限,需要自定义。(4)User角色:默认情况下没有任何权限,需要自定义。(5)CommunityAdministrator角色:在【EnterpriseAdmin】Portlet中看不到,目前还不知道对于Administrator角色是如何定义权限的,定义在哪里?(6)CommunityMember角色:默认情况下没有任何权限,需要自定义。(7)CommunityOwner角色:在【EnterpriseAdmin】Portlet中看不到,目前还不知道对于Administrator角色是如何定义权限的,定义在哪里?5、为什么要将角色分为两类?以用户为例,试想登录后如何控制其权限?(1)在Liferay中将角色分为RegularRole和CommunityRole,一个用户可以被指派给一个或多个RegularRole,也可以被指派给一个或多个CommunityRole;(2)RegularRole和CommunityRole的相同之处:定义权限(DefinePermissions)的方式都是一样的;RegularRole和CommunityRole的不同之处:第一:把角色指派给用户的方式不同,RegularRole可以把角色指派给任何用户,而CommunityRole把角色指派给用户的时候,必须先选定一个社区,换句话说,只能指派给选定社区下的用户;第二:可以指派的范围不同:RegularRole可以把角色指派给用户、组织、地区、用户组、社区等;CommunityRole只能把角色指派给用户,不能指派给组织、地区、用户组、社区等。(3)一般来说,当一个用户登录系统后,查找它属于哪些RegluarRole(见表Users_Roles)和哪些CommunityRole(见表UserGroupRole),通过这些角色获得权限;6、把用户指派给RegularRole和把用户指派给CommunityRole的方式比较:(1)把用户指派给RegularRole通过【EnterpriseAdmin】Portlet,如下图所示:请注意:在【EnterpriseAdmin】Portlet中,选中一个社区角色后,在此并不能像RegularRole一样可以AssignMembers;(2)把用户指派给Co...