`
muzhimin
  • 浏览: 22776 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

liferay配置权限

阅读更多
配置权限
根据之前写的user对象,进行权限声明。具体步骤如下:
(1)    在ext-impl文件夹下,新建resource-actions文件夹。
(2)    在resource-actions文件夹下,建立users.xml文件。
Xml代码:
<?xml version="1.0"?>

<resource-action-mapping>
<!--设置portlet权限-->
<portlet-resource>
<portlet-name>EXT_Users</portlet-name>
<supports>
<action-key>ADD_ENTRY</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_ENTRY</action-key>
<action-key>CONFIGURATION</action-key>
</guest-unsupported>
</portlet-resource>
<!--设置model权限 目前我只用到了这个model-resource-->
<model-resource>
<model-name>com.ext.portlet.users</model-name>
<portlet-ref>
<portlet-name>EXT_Users</portlet-name>
</portlet-ref>
<supports>
<action-key>ADD_ENTRY</action-key>
</supports>
<community-defaults />
<guest-defaults />
<guest-unsupported>
<action-key>ADD_ENTRY</action-key>
</guest-unsupported>
</model-resource>
<model-resource>
<!--元素对应的class-->
<model-name>com.ext.portlet.users.model.UsersEntry</model-name>
<portlet-ref>
<portlet-name>EXT_Users</portlet-name>
</portlet-ref>
<supports>
<action-key>ADD_ENTRY</action-key>
<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>ADD_ENTRY</action-key>
<action-key>DELETE</action-key>
<action-key>PERMISSIONS</action-key>
<action-key>UPDATE</action-key>
</guest-unsupported>
</model-resource>
</resource-action-mapping>
说明:里面的model-name可以在ext-impl/src/content/Language-ext.properties里面定义对应的中文名称,类似映射吧
(3)    在resource-actions文件夹下,建立default-ext.xml文件。
Xml代码
<?xml version="1.0"?>
<resource-action-mapping>
<resource file="resource-actions/users.xml" />
</resource-action-mapping>
就是把上面的users.xml导入进来
(4) 在ext-impl\portal-ext.properties中指明属resource.actions.configs=resource-actions/default.xml,resource-actions/default-ext.xml
说明:resource-actions/default.xml不能省掉,虽然default.xml在这个目录里面没有,经过验证,这个应该是指向原来工程里default.xml文件的,如果省略掉,那么原项目里面的所有权限配置都将失去,估计它是把原来的给直接覆盖掉了吧
(5) 这样子配置好之后,就可以在控制面版里对应的角色的定义权限里找到对应的portlet里面 就能看到刚才配置的信息,当然了,这个配置的信息还不能对应portlet页面的信息,因为还没有写具体的权限类。
(6) 在ext-impl/src/com/ext/portlet/users/service建permission目录,再建UserPermission.java文件
Java代码:
public class UsersPermission {

//permissionChecker.hasPermission方法的四个参数:1 社区ID、2元素 class名、3 主键、4 所操作的权限,
//要和xxx.xml中定义的权限名相同

//check方法适用于后台验证
public static void check(
PermissionChecker permissionChecker, long groupId, String actionId)
throws PortalException {

if (!contains(permissionChecker, groupId, actionId)) {
throw new PrincipalException();
}
}

//contains方法适用于前台验证
public static boolean contains(
PermissionChecker permissionChecker, long groupId, String actionId) {

return permissionChecker.hasPermission(
groupId, "com.ext.portlet.users", groupId, actionId);
}

}
说明:可以从原项目里面对应的包里面找到类似的代码,直接拷过来,其中com.ext.portlet.users要对应users.xml里面的model-name。
(7) 在ext-web/docroot/html/portlet/ext/users/下面的需要控制权限的jsp页面里,加入
<c:if test="<%= UsersPermission.contains(permissionChecker, scopeGroupId, ActionKeys.ADD_ENTRY) %>">
</c:if>
可以对一些按钮进行控制,其中ActionKeys.ADD_ENTRY要对应user.xml里面的action-key。

最后这样子完成后,就可以在控制面版->角色->定义权限->添加portlet权限,选择对应的portlet,再在里面进行配置
图表 1

重新注册一个用户,并将这个角色赋予这个用户,则以这个用户登录后,就可以测试对应的权限了。

图表 2 这是没有这个权限时的portlet


图表 3 这是当用户配置了添加条目权限后的界面,其中的提交按钮就显示出来了
分享到:
评论

相关推荐

    Liferay6.1 权限管理

    Liferay6.1 权限管理功能解析.包括控制面板的权限管理功能的使用,以及自定义开发权限管理系统

    Liferay权限相关的梳理.docx

    Liferay的权限体系几经变动,不同的版本里面有不同的权限结构,下面介绍是摘自Liferay6.1.1版本里面的权限体系,经比对在Liferay7中同样适用,在介绍Liferay权限体系之前,有一些基本的概念需要了解。

    Liferay之权限介绍2

    Liferay之权限的设置管理,介绍大家参考

    Liferay Portal 权限管理

    Liferay Portal 权限管理详细介绍

    liferay 权限文档

    liferay presson开发权限文档资料描述

    liferay 权限文件说明

    liferay-&gt;permissions.xml文件说明

    liferay6.1权限验证时序图

    liferay的权限时序图,给大家共享一下,希望大家批评指正,沟通。

    Liferay Portal权限介绍1

    Liferay Portal权限介绍1,大家参考

    Liferay系统权限分配

    在这个手册里面,我们会对我们的内容管理系统的权限分配作一个很细致的讲述。在我们的信息发布系统里面,我们提供了很灵活的权限分配,对里面的任何资源(比如:高级文章编审这个portlet里面的编辑和审批,我们可以...

    liferay权限管理(大全)

    liferay权限管理大全,详细介绍了liferay内部的权限管理模型以及运作机制,是liferay权限开发的详细资料

    Liferay 配置oracle DB的脚本

    新建Liferay的DB,然后将该文件导入该DB后,即可创建Liferay所需要的Table,并insert提供的初始值。

    Liferay Portal 创建权限

    Liferay Portal 创建权限

    Liferay5.1.2配置Oracle10G数据库操作说明书

    Liferay(5.1.2)的数据库由自身绑定的HSQLDB转成oracle(10G)虽然步骤不多,但因英文的参考资料说的太笼统,而网上相关资料又太少,所以操作起来很费时费力,尤其是当某个错误的操作,出现一大堆的错误提示,可能误导...

    Liferay 开源全面资料

    Liferay+权限管理.doc liferay-portal-5-2-systems-development-sample-chapter-5-managing-pages[1].pdf LiferayPortal二次开发指南.pdf liferay常用模块的简介.doc Liferay代码研读.pdf ...

    liferay配置AD

    liferay配置AD.学习liferay的可以看下学习交流下。

    liferay 权限管理

    本文档详细的描述了liferay的权限相关的一些文档,适合学习liferay权限的人观看

    Liferay权限开发总结

    有关Liferay权限开发方面的总结

    Liferay Portal Liferay IDE

    Liferay Portal Liferay IDE

    liferay应用之配置

    Liferay Portal针对不同的用户会展现出不同的服务网页。当浏览Portal主页网址http://localhost:8080/时,自动转入网址http://localhost:8080/web/guest/home调出面向所有人的Guest社区公共主页。一个注册用户登录...

    liferay_系列初始IDE配置

    liferay_系列初始Ide_SDK入门教程,Eclipse的lifeRay配置使用

Global site tag (gtag.js) - Google Analytics