liferay里面所有的东西都被视为资源,权限和资源挂钩主要涉及到2个表:
1、resourcepermission:资源权限表,此表定义了liferay里面的权限结构,表结构主要的字段如下:
name:资源对象的描述,如果资源描述的是一个portlet对象,则为这个portlet对象的portletId。如果是一个class,则为带包名的class全
称;
scope:权限的作用域,值有1、2、3、4;
1代表company级,就是实例;
2代表group级,就是站点级;
3代表站点模板;
4是没有级别,就是当前的。
primkey:资源的id
roleid:角色id
ownerid:资源属于哪一个人,一般值为0或者创建用户的id;
actionids:这里的actionids为resourceaction表里面的bitwisevalue的值想加之和;
2、resourceaction:资源动作表,此表定义了liferay中的相应资源上可执行的动作有哪些,表结构主要字段如下:
name:定义可资源的类型,同上面的表一样,确定资源是portlet还是实体或者其他,表示是什么资源;
actionid:可执行的动作名称,这里主要是为我们的动作起一个名字,如添加,查看等;
bitwisevalue:这个定义为上面可执行动作的位值,也可以看做权限动作的id;
所以我们如果要判断bitwisevalue的值是否在actionids里面,只需要2个做位与算,actionids|bitwisevalue是否等于bitwisevalue即可。
liferay中的权限判断方法和获取、修改方法:
liferay提供了现有的权限处理方法类ResourcePermissionLocalServiceUtil,下面介绍一下这个类的一些权限方法:
1、权限判断方法:hasResourcePermission(companyId, name, scope, primKey, roleId, actionId)
companyId = com.liferay.portal.util.PortalUtil.getDefaultCompanyId();
role = com.liferay.portal.service.RoleLocalServiceUtil.getRole(companyId, "Site Member");
// some layout plid
layoutPlid = 10174;
name = "com.liferay.portal.model.Layout";
roleId = role.getRoleId();
actionId = "VIEW";
primKey = layoutPlid;
scope = com.liferay.portal.model.ResourceConstants.SCOPE_INDIVIDUAL;
hasIndividualPermission = com.liferay.portal.service.ResourcePermissionLocalServiceUtil.hasResourcePermission(companyId, name, scope, primKey, roleId, actionId);
2、修改权限方法:updateResourcePermission(ResourcePermission perm)
long companyId = themeDisplay.getCompanyId();
Role role = com.liferay.portal.service.RoleLocalServiceUtil.getRole(companyId, "Owner");
String name = DLFolder.class.getName();
long primKey = savedFolder.getFolderId();
int scope = com.liferay.portal.model.ResourceConstants.SCOPE_INDIVIDUAL;
ResourcePermission perm = ResourcePermissionLocalServiceUtil.getResourcePermission(companyId, name, scope, String.valueOf(primKey), role.getRoleId());
perm.removeResourceAction("VIEW");
ResourcePermissionLocalServiceUtil.updateResourcePermission(perm);
liferay2.6下的权限体系以及权限处理方法
猜你喜欢
转载自blog.csdn.net/u010634127/article/details/80609464
今日推荐
周排行