权限控制是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->permissions.xml文件说明
Liferay的权限体系几经变动,不同的版本里面有不同的权限结构,下面介绍是摘自Liferay6.1.1版本里面的权限体系,经比对在Liferay7中同样适用,在介绍Liferay权限体系之前,有一些基本的概念需要了解。
liferay presson开发权限文档资料描述
Liferay6.1 权限管理功能解析.包括控制面板的权限管理功能的使用,以及自定义开发权限管理系统
liferay权限管理大全,详细介绍了liferay内部的权限管理模型以及运作机制,是liferay权限开发的详细资料
有关Liferay权限开发方面的总结
Liferay之权限的设置管理,介绍大家参考
Liferay Portal 权限管理详细介绍
Liferay Portal数据库读写说明
liferay使用说明--管理,详细信息
本文档详细的描述了liferay的权限相关的一些文档,适合学习liferay权限的人观看
liferay权限管理,非常详细的liferay后台管理权限管理
Liferay Portal Liferay IDE
Liferay Portal 创建权限
有关与liferay权限的开发,最简单的代码开发
liferay的权限时序图,给大家共享一下,希望大家批评指正,沟通。
描述了liferay的数据库表结构以及关联关系 示例: 社区、组织、地区、用户组、用户与角色之间的关系 1、表Groups_Roles 主要功能:存储社区与角色的关系; 存储组织与角色的关系; 存储地区与角色的关系; 存储用户...
Liferay Portal 数据库介绍 Liferay Portal 数据库是指Liferay Portal系统中存储的所有数据,包括用户信息、组织结构、页面布局、portlet配置等。下面将从数据库的角度来介绍Liferay Portal 的页面布局和相关知识点...
介绍了Liferay的权限管理方面的知识。
包括liferay的用户配置,系统接口,包括Liferay Portal 6 企业应用开发,Liferay 用户开发接口,Liferay+in+Action,Liferay 系统开发等