liferay的权限控制

liferay 的资源的权限控制可以针对portlet资源、java类、上传资源进行控制。

资源关键表:

资源关键表:

 

resourcecode:代表需要控制资源的类型。
    name:代表资源的实际类型如portlet资源为portletId,java完整的类名。
         Scope = 1 用于Regular Role,表示Enterprise范围,当前企业的所有社区的所有页面;
         Scope = 2 用于 Regular Role,表示Community范围,当前社区的所有页面;
         Scope = 3 用于 Community Role,作用范围Community,当前社区的所有页面;
         Scope = 4 用于User Organization Location UserGroup Community,作用范围Individual,当前页面,当前页面下的对象;
   resource_:代表实际的进行权限控制的资源.
        其中字段:primkey字段对应的实际要进行权限控制对象的主键,例如如果需要对某个java对象实例进行权限控制primkey代表该对象的实例ID。
codeId对应resoucecode表中的codeId
resource:代表需要控制的资源。

 

 

权限控制关键表:

role_:对应的角色系统默认的角色有:
Administrator
Community Administrator
Community Member
Community Owner
Guest
Organization Administrator
Organization Member
Organization Owner
Owner
Power User
User
permission_:记录资源对象对应的权限功能
roles_permissions:记录角色对应的权限功能。

 

 

例如我们需要对用户对象(java对象 user)进行权限控制通过如下表:


SELECT * FROM user_ r WHERE r.userId=2;
SELECT * FROM Resource_ e WHERE e.primKey=2;
SELECT * FROM ResourceCode d WHERE d.name='com.liferay.portal.model.User' AND d.codeId=136;
SELECT * FROM permission_ p WHERE p.resourceId=1504;
SELECT * FROM roles_permissions p WHERE p.permissionId IN(1806,1807,1808,1809,1810);
SELECT NAME FROM role_ l WHERE l.roleId =10110;

 

 

针对portlet资源:例如portlet 47 portlet-hello-world

SELECT * FROM ResourceCode d,permission_ p,Resource_ e,role_ l,roles_permissions s
WHERE l.roleId=s.roleId AND s.permissionId=p.permissionId AND e.codeId=d.codeId
AND e.resourceId =p.resourceId  AND d.companyId=1 AND d.name=47

 


代表primKey为:10124_LAYOUT_47 针对portlet-hello-world portlet可以进行的权限。
10124_LAYOUT_4: 代表id为:10124的layout,实际上是指guest社区的layout。

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值