版本: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权限系统是一个复杂而精细的框架,它在不同版本中有所变化,但在Liferay 6.1.1和Liferay 7中保持了相似的结构。理解Liferay权限的关键在于掌握其基本概念,包括用户、用户组、角色、组织、站点以及团队。 1....
`permissions.xml`文件是Liferay中用于定义模型对象(如用户、角色等)权限的重要文件之一。该文件通常包含一系列的权限定义,包括但不限于添加、查看、编辑和删除等操作的权限控制。下面将详细介绍`permissions.xml...
权限系统是Liferay中的核心组件之一,它允许管理员精确控制用户对平台内不同资源的访问和操作权限。在“Liferay权限文档”中,我们将深入探讨这一主题。 Liferay的权限系统基于角色(Roles)、组织(Organizations...
### Liferay 6.1 权限管理深度解析 #### 一、权限管理概述 Liferay 6.1 的权限管理是一项重要的功能,它确保了门户的安全性和灵活性。权限管理主要包括用户管理、组织机构管理、站点管理和角色管理等多个方面。...
- Liferay通过用户-用户组-角色-Portlet的关联方式来实现权限管理,用户通过用户组获得角色,角色决定了用户对Portlet的操作权限。 - 开发者可以通过配置Portlet的权限来控制不同角色的访问,例如Admin、...
在Liferay权限开发中,权限模型是核心概念之一。Liferay定义权限为针对特定资源的操作行为,这使得系统能够判断用户是否被授权执行特定动作。资源(Resource)是权限系统中的基本元素,它可以是Portlet、Page、...
本文将详细解析Liferay权限系统的构建机制,以及如何通过代码实现自定义权限控制,确保应用的安全性和用户访问的合理性。 ### Liferay权限系统概述 Liferay的权限模型基于角色(Role)、组织(Organization)、群组...
《深入解析Liferay Portal创建权限机制》 Liferay Portal作为一款功能强大的企业级门户平台,其权限管理系统是其核心组成部分之一。本文将深入探讨Liferay Portal的权限创建机制,包括如何自定义权限系统,以及如何...
- **概念**:在Liferay中,角色是权限管理的核心组成部分,通过定义角色并将其分配给用户、社区、组织、地区或用户组来实现权限的控制。 - **应用场景**:例如,如果一个用户被赋予了“Administrator”角色,则该...
角色配置是Liferay权限管理的核心环节之一。 ##### 3.1 Liferay角色类型 Liferay提供了多种角色类型以适应不同的应用场景,主要包括常规角色、组织角色和站点角色。 - **常规角色**:适用于整个门户的权限管理,...
3. **权限分配**:权限可以分配给角色,角色再分配给用户、用户组或组织,实现权限的传递。 4. **权限覆盖**:下级角色或用户的权限可以覆盖上级的权限设定,实现更精细的控制。 Liferay权限级别的概念进一步细化了...
#### 一、Liferay Portal 架构解析 ##### 1.1 Portal规范 Liferay Portal遵循了两种主要的门户规范:JSR 168 和 WSRP (Web Services for Remote Portlets)。JSR 168是一个Java规范请求,用于定义Portlet容器和...
在Liferay中实现SSO(Single Sign-On)单点登录功能,可以让用户在一个系统登录后,无需再次输入凭证就能访问其他关联系统,极大地提高了用户体验。其中,CAS(Central Authentication Service)是一个广泛应用的...
Liferay Portal 是一款强大的企业级门户平台,其权限管理系统是其核心特性之一,用于实现对企业内部资源的精细控制。在Liferay中,权限管理涉及到企业管理、组织管理、地区管理、用户组管理和Portlet管理等多个层面...
【Liferay系统权限分配】是Liferay Portal平台中一项核心功能,它允许管理员根据业务需求精细控制用户对系统资源的访问。Liferay的权限模型基于角色(Role)和资源(Resource),通过角色来分配和管理权限,使得权限...
Liferay的权限管理提供了精细的控制,确保了不同级别的管理者和用户只能访问他们被授权的资源,从而实现了安全和效率的平衡。通过角色的定义和分配,权限管理使得企业可以根据需要灵活定制用户的访问权限,满足复杂...
【Liferay Portal 二次开发指南】 在IT领域,Liferay Portal是一个开源的企业级门户平台,它提供了丰富的功能和高度的可扩展性,使得开发者能够构建复杂的Web应用和企业信息系统。本指南将深入探讨Liferay Portal的...
Liferay权限管理系统是Liferay Portal的核心组件之一,用于管理和控制平台内的访问控制和操作权限。在Liferay中,权限管理的基石是资源的概念,资源可以是portlet、功能按钮或其他可操作的对象。理解权限分配首先...
本文将详细解析Liferay中的权限管理机制,包括用户管理、组织管理、角色与权限分配等方面,帮助读者深入理解并熟练应用。 #### 用户管理 在Liferay中,用户是系统的基本操作主体。用户管理主要包括: 1. **改变...