`
Tyler_Zhou
  • 浏览: 216991 次
  • 性别: Icon_minigender_1
  • 来自: 湖北->上海
社区版块
存档分类
最新评论

liferay新增权限(二)

阅读更多
接着(一)讲,在做持久化的时候会在新增的portlet包下面有一个service包(参考自动生成持久化代码那篇文章),增加一个名为permission的包,增加orderPermission.java,内容如下:

public static void check(
PermissionChecker permissionChecker, long plid, long categoryId,
String actionId)
throws PortalException, SystemException, Exception {

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

public static void check(
PermissionChecker permissionChecker, long categoryId,
String actionId)
throws PortalException, SystemException, Exception  {

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

public static void check(
PermissionChecker permissionChecker, CategoryEntry category,
String actionId)
throws PortalException, SystemException {

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

public static boolean contains(
PermissionChecker permissionChecker, long pld, long categoryId,
String actionId)
throws PortalException, SystemException, Exception  {

if (categoryId == ProductCategoryUtil.DEFAULT_PARENT_CATEGORY_ID) {
return PortletPermissionUtil.contains(
permissionChecker, pld, "PROTLET_NAME", actionId);
}
else {
return contains(permissionChecker, categoryId, actionId);
}
}

public static boolean contains(
PermissionChecker permissionChecker, long categoryId,
String actionId)
throws PortalException, SystemException, Exception {

CategoryEntry category =
CategoryEntryServiceUtil.findByPrimaryKey(categoryId);

return contains(permissionChecker, category, actionId);
}

public static boolean contains(
PermissionChecker permissionChecker, CategoryEntry category,
String actionId)
throws PortalException, SystemException {

return permissionChecker.hasPermission(
category.getGroupId(), CategoryEntry.class.getName(),
category.getCategoryId(), actionId);
}
一个check对应一个contains,两个用在不同的场合,check用在后台持久化操作时候会抛出一个权限不足的错误,而contains用在JSP只是用来验证权限的.其实可以看出最后都是调用permissionChecker.hasPermission方法的,四个参数:1社区ID,2元素class名,3主键,4所操作的权限(要和order.xml中定义的权限名相同).还有一个PortletPermissionUtil.contains方法,这个是用来验证当前portlet操作权限的,他有四个参数:1permissionChecker,2当前layout.getPlid(),3portlet名,4所操作权限.
至于里面的参数的获得可以参照一下liferay原码中的shopping card,这个里面有这些参数的获得方法.有这个权限后,就可以把权限控制到每一个元素上.
分享到:
评论
9 楼 flyingcn 2008-06-25  
我真的真的真的很奇怪,博主太强了,你是怎么知道这些内容!

要不是看到你的这篇文章,我真的要自己重写系统了
8 楼 雪飞南国 2008-04-15  
我也是刚进公司学习这个东西,权限这块比较复杂。看得我头晕,幸好已有些眉目。你的文章也对我很有帮助。共同学习!~
7 楼 Tyler_Zhou 2008-04-14  
http: //docs.huihoo.com/liferay/4.3/这个网址不错,我记下来了,对雪飞南国 表示感谢.
6 楼 Tyler_Zhou 2008-04-14  

雪飞南国 19 分钟前
权限这块 我觉得你说的太粗了 liferay中所有的权限验证都是在围绕permissionChecker.hasPermission()转不管check也好(以及check调用的)contains也好。大家最好参考http: //docs.huihoo.com/liferay/4.3/portlet-development-guide/ch05.html这个,然后自己看看源码。
---------------------------------------------------------
你说的是对的,权限的核心就是permissionChecker这个类,在这里我只是讲了如何去用这个类按照liferay的操作方式来开发自已的权限,至这个类里面做了什么我这里并没有讲。简单说一下,他先是看缓存中有没有记录,没有再看是否登陆,然后再去找表resource_,resourceCode,最后才是permission表,在这个过程中他的判断分支是很多的,有兴趣大家可以去看一下他是怎么做的,这里我就不多讲了。
5 楼 Tyler_Zhou 2008-04-14  

雪飞南国 19 分钟前
权限这块 我觉得你说的太粗了 liferay中所有的权限验证都是在围绕permissionChecker.hasPermission()转不管check也好(以及check调用的)contains也好。大家最好参考http: //docs.huihoo.com/liferay/4.3/portlet-development-guide/ch05.html这个,然后自己看看源码。
---------------------------------------------------------
你说的是对的,权限的核心就是permissionChecker这个类,在这里我只是讲了如何去用这个类按照liferay的操作方式来开发自已的权限,至这个类里面做了什么我这里并没有讲。简单说一下,他先是看缓存中有没有记录,没有再看是否登陆,然后再去找表resource_,resourceCode,最后才是permission表,在这个过程中他的判断分支是很多的,有兴趣大家可以去看一下他是怎么做的,这里我就不多讲了。
4 楼 Tyler_Zhou 2008-04-14  

雪飞南国 19 分钟前
权限这块 我觉得你说的太粗了 liferay中所有的权限验证都是在围绕permissionChecker.hasPermission()转不管check也好(以及check调用的)contains也好。大家最好参考http: //docs.huihoo.com/liferay/4.3/portlet-development-guide/ch05.html这个,然后自己看看源码。
---------------------------------------------------------
你说的是对的,权限的核心就是permissionChecker这个类,在这里我只是讲了如何去用这个类按照liferay的操作方式来开发自已的权限,至这个类里面做了什么我这里并没有讲。简单说一下,他先是看缓存中有没有记录,没有再看是否登陆,然后再去找表resource_,resourceCode,最后才是permission表,在这个过程中他的判断分支是很多的,有兴趣大家可以去看一下他是怎么做的,这里我就不多讲了。
3 楼 雪飞南国 2008-04-14  
权限这块 我觉得你说的太粗了 liferay中所有的权限验证都是在围绕permissionChecker.hasPermission()转  不管check也好(以及check调用的)contains也好。大家最好参考http://docs.huihoo.com/liferay/4.3/portlet-development-guide/ch05.html这个,然后自己看看源码。
2 楼 libin2722 2008-03-27  
能不能再说得详细点,order表结构是什么样的,在后台和jsp页面是怎么调用呢?
1 楼 aaronfeng80 2008-02-19  
不用自动生成持久化代码行吗?那些代码都是必需的吗?

相关推荐

    Liferay6.1 权限管理

    除了内置的权限管理功能外,Liferay 6.1 还支持通过二次开发来扩展权限管理的能力。 - **开发者指南**:官方提供了详细的开发者指南,其中包含了关于如何进行权限管理二次开发的信息。 - **安全性和扩展性**:二次...

    liferay 权限文档

    权限系统是Liferay中的核心组件之一,它允许管理员精确控制用户对平台内不同资源的访问和操作权限。在“Liferay权限文档”中,我们将深入探讨这一主题。 Liferay的权限系统基于角色(Roles)、组织(Organizations...

    liferay 权限文件说明

    ### Liferay权限文件说明 #### 一、概述 在Liferay平台中,权限管理是非常重要的一个环节,它确保了系统的安全性和数据的访问控制。本文档主要介绍的是`permissions.xml`文件及其相关配置,这对于理解如何在...

    Liferay之权限介绍2

    6. 权限控制和二次开发: - Liferay通过用户-用户组-角色-Portlet的关联方式来实现权限管理,用户通过用户组获得角色,角色决定了用户对Portlet的操作权限。 - 开发者可以通过配置Portlet的权限来控制不同角色的...

    Liferay权限相关的梳理.docx

    Liferay权限系统是一个复杂而精细的框架,它在不同版本中有所变化,但在Liferay 6.1.1和Liferay 7中保持了相似的结构。理解Liferay权限的关键在于掌握其基本概念,包括用户、用户组、角色、组织、站点以及团队。 1....

    Liferay系统权限分配

    【Liferay系统权限分配】是Liferay Portal平台中一项核心功能,它允许管理员根据业务需求精细控制用户对系统资源的访问。Liferay的权限模型基于角色(Role)和资源(Resource),通过角色来分配和管理权限,使得权限...

    Liferay Portal 创建权限

    ### 二、自定义权限系统 尽管Liferay提供了丰富的权限管理功能,但在某些场景下,可能需要更定制化的权限解决方案。这通常涉及到重写`PermissionCheckerImpl`类,特别是`hasUserPermission`、`hasGuestPermission`...

    Liferay Portal 权限管理

    Liferay Portal 是一款强大的企业级门户平台,其权限管理系统是其核心特性之一,用于实现对企业内部资源的精细控制。在Liferay中,权限管理涉及到企业管理、组织管理、地区管理、用户组管理和Portlet管理等多个层面...

    liferay6.1权限验证时序图

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

    Liferay Portal权限介绍1

    ### Liferay Portal权限管理系统概述 Liferay Portal作为一款先进的企业级门户平台,其权限管理系统是保障信息安全、实现个性化用户体验的核心组件之一。本文旨在详细介绍Liferay Portal中的权限模型及其关键概念,...

    Liferay权限开发总结

    在Liferay权限开发中,权限模型是核心概念之一。Liferay定义权限为针对特定资源的操作行为,这使得系统能够判断用户是否被授权执行特定动作。资源(Resource)是权限系统中的基本元素,它可以是Portlet、Page、...

    Liferay Portal 二次开发指南

    ### Liferay Portal 二次开发指南 #### 一、Liferay Portal 架构解析 ##### 1.1 Portal规范 Liferay Portal遵循了两种主要的门户规范:JSR 168 和 WSRP (Web Services for Remote Portlets)。JSR 168是一个Java...

    liferay二次开发指南,doc

    【Liferay Portal 二次开发指南】 在IT领域,Liferay Portal是一个开源的企业级门户平台,它提供了丰富的功能和高度的可扩展性,使得开发者能够构建复杂的Web应用和企业信息系统。本指南将深入探讨Liferay Portal的...

    liferay 权限管理

    #### 二、Liferay人员组织构建 Liferay的人员组织结构设计旨在实现清晰的用户管理和权限分配。 ##### 2.1 用户建立 新用户的建立一般不在控制面板中直接维护,而是通过用户管理站点模块进行。在控制面板中,可以...

    liferay权限管理(大全)

    ### Liferay权限管理详解 #### 一、企业管理与权限层级 Liferay的权限管理系统非常强大且灵活,能够满足企业级应用对于用户权限控制的各种需求。本文档将详细解析Liferay内部的权限管理模型及其运作机制。 ##### ...

    Liferay权限管理

    Liferay权限管理系统是Liferay门户平台的核心组成部分,用于控制用户对平台内容和功能的访问。这一系统基于严格的层次结构和角色分配,确保了资源的安全性和访问的灵活性。 1. **权限管理层次**: - **企业管理...

    Liferay 开源全面资料

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

    Liferay权限结构

    Liferay权限结构是Liferay门户平台中核心的安全机制,它负责控制用户对系统资源的访问和操作。本文档主要针对Liferay的权限系统进行了深入解析,旨在为初学者提供详尽的指导。 首先,我们要理解Liferay权限的定义。...

    Liferay Portal Liferay IDE

    Liferay Portal Liferay IDE

    liferay_permissions.rar_liferay

    "liferay_permissions.rar_liferay"这个压缩包可能包含的就是Liferay权限系统的数据库结构图,这对于理解Liferay的权限管理机制至关重要。 Liferay的权限系统基于Spring Security(原Acegi Security)框架,采用ACL...

Global site tag (gtag.js) - Google Analytics