关于liferay权限问题的说明
来源:互联网 发布:淘宝代销产品怎么上架 编辑:程序博客网 时间:2024/06/06 08:43
权限控制是liferay4.0以后增加的新特性。在liferay中开发权限是一件很容易的事情,基上都是通过定义xml来实现。
默认的权限定义的xml文件放portal/portal-ejb/classes/resource-actions中
首先,我们来看看给自己的portlet加上权限控制,主要要完成以下四步操作(DRAC):
1. Define all resources and their permissions.
先定义所有所需要的权限(包括portlet resource和model resource)
2. For all the resources defined in step 1, register them into the permission system. This is also known
simply as “adding resources.”
当定义完权限后,我们需要把权限的定义注册到权限系统中,即把权限相关信息保存到数据库中
3. Associate the necessary permissions to these resources.
把所需的permission关联到resources上
4. Check permission before returning resources.
在相应的位置加上权限检验的方法
在解析上面四个步骤以前,有两个定义是非常重要的:
1. Resource-在portal系统中,可以简单的认为Resource是一个个可以操作的实体对象。举个例子:一般resources包括portlets(如:Message Boards,Calendar, etc),java类(如:Message Board Topics,Calendar Events, etc)还有flies(如:documents,images,etc)
2. Permission-一个个可运行的权限动作,都已经在resourcez中定义了。举个例子:“查看calendar的portlet”这个权限动作已经通过resource在liferay的权限系统中定义
下面对其中的第四点进行说明:
Liferay中的权限的检验方法很多,但是不是都好用,我们采用的是
<c:if test="<%= PortletPermission.contains(permissionChecker, plid, PortletKeys.CALENDAR, ActionKeys.ADD_EVENT) %>">
把要检验的资源放在</c:if>之间。在PortletKeys.CALENDAR和ActionKeys.ADD_EVENT处,换成自己定义的portlet文件的的名字和在ActionKeys里面定义的操作就可以了。
在定义完权限的resource后,我们需要在default.xml中加入对应的path,Default.xml的路径在portal(-ext).properties中可以配置
resource.actions.configs=resource-actions/default.xml
我们可以看到liferay的权限定义分<portlet-resource>和<model-resource>两种,portlet-resource中定义的,我们可以在上面看到,主要可以控制portlet的查看,配置权限,还有就是可以控制按钮一类设置的权限,model-resource的权限控制到每条记录上。下面是关于日历的xml文件的配置帮助理解。
- <resource-action-mapping>
- <portlet-resource>
- <portlet-name>8</portlet-name>
- <supports>
- <action-key>ADD_EVENT</action-key>
- <action-key>CONFIGURATION</action-key>
- <action-key>VIEW</action-key>
- supports>
- <community-defaults>
- <action-key>VIEW</action-key>
- community-defaults>
- <guest-defaults>
- <action-key>VIEW</action-key>
- guest-defaults>
- <guest-unsupported>
- <action-key>ADD_EVENT</action-key>
- </ guest-unsupported>
- </ portlet-resource>
- <model-resource>
- <model-name>com.liferay.portlet.calendar.model.CalEvent</model-nam>
- <portlet-ref>
- <portlet-name>8</portlet-name>
- </portlet-ref>
- <supports>
- <action-key>DELETE</action-key>
- <action-key>PERMISSIONS</action-key>
- <action-key>UPDATE</action-key>
- <action-key>VIEW</action-key>
- supports>
- <community-defaults>
- <action-key>VIEW</action-key>
- community-defaults>
- <guest-defaults>
- <action-key>VIEW</action-key>
- guest-defaults>
- <guest-unsupported>
- <action-key>UPDATE</action-key>
75. </ guest-unsupported>
76.
77. </model-resource>
78.
79. </resource-action-mapping>
- 关于liferay权限问题的说明
- liferay权限的说明2
- Liferay的一个奇怪的权限问题
- Liferay:Liferay的权限系统
- liferay的权限控制
- Liferay关于session 问题
- Liferay 的JAAS权限管理
- Liferay权限管理的讲解
- Liferay权限管理的讲解
- liferay的contextpath问题
- 关于Linux文件权限的简要说明
- linux中关于目录权限的说明
- liferay学习2--用户体系及权限体系简单说明
- 关于文件权限中 s、t权限的说明
- Liferay Portal 的权限控制代码(部分)
- liferay document libery 的访问权限设置
- 关于权限不够的问题
- android关于权限的问题
- 好神奇哟
- 关于时间格式的一些处理方法
- 10 Moments of Microsoft
- C#中的泛型
- FTP命令详解
- 关于liferay权限问题的说明
- 设计模式读书笔记(四)——生成器模式
- Oracle 数据合并的解决办法(用connect by 树解决)
- assert()和ASSERT()
- Web 性能优化十大诀窍
- cd命令的几个小技巧
- 一个合格程序员该做的事情
- [已经解决] sys未定义错误的问题所在!
- asp.net Sql server 常用函数