`

liferay 权限

阅读更多

liferay的权限很多资料说是资源加行为即权限。对这个不实际应用还真是把握不好。

资源是有范围的:1到4,由大到小,1公司,2社区3角色4实例

对于角色的权限定义,在角色管理,选中某个portlet资源(门户的定义也是portlet,portlet name 'portal',id是90),资源范围是3,关联表式roles_permission,资源的主键是0,截图权限1.bmp为证。

对于社区的权限定义,在社区管理里边,选中某个portlet,此时资源范围是2,和角色不同的是,此时资源的id是社区的groupid,并没有在groups_permissions表中添加关联记录。

对于公司范围的资源的权限定义,资源id是公司的id

==========================================================

版本:4.3.4企业版

1.用户所关联实体(社区、组织、用户组、角色、及他们之间的关联体):

com.liferay.portal.service.persistence.GroupFinder.countByGroupId:

SELECT
                COUNT(*) AS COUNT_VALUE
            FROM
                Group_
             INNER JOIN
                Users_Groups ON
                    (Users_Groups.userId = ?)
            WHERE
                (Group_.liveGroupId = 0) AND
                (Users_Groups.groupId = Group_.groupId)
                (Group_.groupId = ?) AND
                (Group_.liveGroupId = 0)

 

2.资源及权限查找:

资源有四种范围:

对于范围是4的资源,资源的primky是业务对象的id

对于范围是2的资源,资源的primky是权限验证相关的groupid,一般是社区

对于范围是3的资源,资源的primky是GroupImpl.DEFAULT_PARENT_GROUP_ID,即0

对于范围是3的资源,资源的primky是companyId公司id

所以要查找四个范围的资源

3.权限验证:

以下是liferay默认的用户权限运算规则要权限检查的对象,对应的表很好找,使用customersql的方式查询

com.liferay.portal.service.persistence.PermissionFinder.countByGroupsRoles:

com.liferay.portal.service.persistence.PermissionFinder.countByGroupsPermissions:

com.liferay.portal.service.persistence.PermissionFinder.countByUsersRoles:

com.liferay.portal.service.persistence.PermissionFinder.countByUserGroupRole:

com.liferay.portal.service.persistence.PermissionFinder.countByUsersPermissions:

SELECT
                COUNT(*) AS COUNT_VALUE
            FROM
                Groups_Roles
            INNER JOIN
                Roles_Permissions ON
                    (Roles_Permissions.roleId = Groups_Roles.roleId)
            INNER JOIN
                Permission_ ON
                    (Permission_.permissionId = Roles_Permissions.permissionId)
            WHERE
                (Roles_Permissions.permissionId=?) AND
                (Groups_Roles.groupId=?)

Union all(

SELECT
                COUNT(*) AS COUNT_VALUE
            FROM
                Permission_
            INNER JOIN
                Groups_Permissions ON
                    (Groups_Permissions.permissionId = Permission_.permissionId)
            WHERE
                (Groups_Permissions.permissionId=?) AND
                (Groups_Permissions.groupId=?)

)

union all(

SELECT
                COUNT(*) AS COUNT_VALUE
            FROM
                Users_Roles
            INNER JOIN
                Roles_Permissions ON
                    (Roles_Permissions.roleId = Users_Roles.roleId)
            INNER JOIN
                Permission_ ON
                    (Permission_.permissionId = Roles_Permissions.permissionId)
            WHERE
                (Roles_Permissions.permissionId=?) AND
                (Users_Roles.userId = ?)

)

union all(

SELECT
                COUNT(*) AS COUNT_VALUE
            FROM
                UserGroupRole
            INNER JOIN
                Roles_Permissions ON
                    (Roles_Permissions.roleId = UserGroupRole.roleId and UserGroupRole.groupId = ?)
            INNER JOIN
                Permission_ ON
                    (Permission_.permissionId = Roles_Permissions.permissionId)
            WHERE
                (Roles_Permissions.permissionId=?) AND
                (UserGroupRole.userId = ?)

)

union all(

SELECT
                COUNT(*) AS COUNT_VALUE
            FROM
                Permission_
            INNER JOIN
                Users_Permissions ON
                    (Users_Permissions.permissionId = Permission_.permissionId)
            WHERE
                (Users_Permissions.permissionId=?) AND
                (Users_Permissions.userId = ?)

)

分享到:
评论

相关推荐

    Liferay权限相关的梳理.docx

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

    liferay 权限文件说明

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

    liferay 权限文档

    在“Liferay权限文档”中,我们将深入探讨这一主题。 Liferay的权限系统基于角色(Roles)、组织(Organizations)、群组(Groups)和资源(Resources)的概念。角色定义了一组权限,可以分配给用户或群组,从而...

    liferay权限管理(大全)

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

    Liferay权限开发总结

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

    liferay权限

    本文将详细解析Liferay权限系统的构建机制,以及如何通过代码实现自定义权限控制,确保应用的安全性和用户访问的合理性。 ### Liferay权限系统概述 Liferay的权限模型基于角色(Role)、组织(Organization)、群组...

    liferay 权限管理

    ### Liferay权限管理系统详解 #### 一、Liferay权限概述 Liferay的权限管理系统非常强大且灵活,能够满足企业级应用程序对于用户权限控制的各种需求。本节将详细介绍Liferay权限模型的基本组成部分及其工作原理。 ...

    Liferay权限管理

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

    Liferay权限结构

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

    liferay权限管理

    Liferay权限管理系统是Liferay Portal的核心组件之一,用于管理和控制平台内的访问控制和操作权限。在Liferay中,权限管理的基石是资源的概念,资源可以是portlet、功能按钮或其他可操作的对象。理解权限分配首先...

    Liferay Portal 创建权限

    对于高级用户而言,理解Liferay权限框架的深层次原理将有助于优化权限管理策略: 1. **社区与企业权限的区别**:社区权限通常限制在一个特定的社区范围内,而企业权限则适用于整个组织层级。例如,企业权限可以视为...

    Liferay Portal 权限管理

    Portlet管理是Liferay权限体系中的一个重要组成部分。每个Portlet都有其必要的角色需求,这些角色定义了谁可以查看、配置或管理该Portlet。在“Enterprise Admin Portlet”中,管理员可以修改Portlet的角色需求,以...

    Liferay 权限管理

    介绍了Liferay的权限管理方面的知识。

    liferay使用说明--管理

    ### Liferay权限管理系统详解 Liferay是一款开源的企业级门户平台,提供了一系列强大的工具和服务,用于构建和管理企业网站、社区和应用程序。其中,权限管理是其核心功能之一,旨在帮助企业控制用户对不同资源的...

    liferay_permissions.rar_liferay

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

    Liferay6.1 权限管理

    ### Liferay 6.1 权限管理深度解析 #### 一、权限管理概述 Liferay 6.1 的权限管理是一项重要的功能,它确保了门户的安全性和灵活性。权限管理主要包括用户管理、组织机构管理、站点管理和角色管理等多个方面。...

    Liferay系统权限分配

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

    tester-liferay-permission:Liferay 权限系统测试工具

    测试人员-liferay-权限 这是用于测试 Liferay 权限系统和性能的示例应用程序。 有三个使用 ResourceBlock Permissions 的 porlets Foo 和使用普通 ResourcePermissions 的 Bar。 编译: mvn 包 部署: 将战争...

    Liferay之权限介绍2

    在Liferay Portal中,权限管理是系统的核心组成部分,它允许管理员根据不同的角色和用户组定制访问和操作的权限。Liferay的权限系统基于面向对象编程的继承概念,以确保资源的管理和访问控制既灵活又安全。 1. ...

    liferay6.1权限验证时序图

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

Global site tag (gtag.js) - Google Analytics