配置权限
根据之前写的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 这是当用户配置了添加条目权限后的界面,其中的提交按钮就显示出来了
分享到:
相关推荐
### Liferay 6.1 权限管理深度解析 #### 一、权限管理概述 Liferay 6.1 的权限管理是一项重要的功能,它确保了门户的安全性和灵活性。权限管理主要包括用户管理、组织机构管理、站点管理和角色管理等多个方面。...
在“liferay.zip”中,可能包含的是与权限相关的示例代码、配置文件或者演示实例,帮助开发者更深入地理解Liferay权限系统的工作原理和实践方法。解压后,可以查看具体文件了解如何在实际开发中应用这些概念。 总之...
这一步骤是为了让系统能够读取到配置文件中的属性值,进而根据这些值进行后续的权限控制设置。 ```xml <param-name>portlet_properties <param-value>library-portlet.properties ``` 2. **配置语言和权限...
总的来说,Liferay的权限系统是复杂而精细的,它提供了一种灵活的方式来确保企业内部的信息安全和访问控制,同时允许管理员根据需要调整权限设置,以满足不同角色和用户组的需求。通过理解这些核心概念,管理员可以...
此外,Liferay还支持资源层次结构,意味着权限可以基于资源的层级结构进行继承,这样在较高层级设置的权限会影响到下级资源。 总的来说,Liferay的权限分配机制提供了强大的控制力,确保了系统的安全性和灵活性。...
2. **角色权限的层级**:角色权限的层级结构允许管理员在不同层级上设置一致的权限,减少重复配置的工作量。 3. **用户组的作用**:用户组是连接用户与角色的关键桥梁,通过将用户添加到特定的用户组中,可以快速...
Liferay Portal 是一款强大的企业级门户平台,其权限管理系统是其核心特性之一,用于实现对企业内部资源的精细控制。在Liferay中,权限管理涉及到企业管理、组织管理、地区管理、用户组管理和Portlet管理等多个层面...
本文旨在详细介绍Liferay Portal中的权限模型及其关键概念,帮助管理员和开发者更好地理解并配置系统权限。 #### 1. 权限检查流程 在Liferay Portal中,权限检查遵循一个固定的顺序:个体(用户)、社区、企业。...
在Liferay权限开发中,权限模型是核心概念之一。Liferay定义权限为针对特定资源的操作行为,这使得系统能够判断用户是否被授权执行特定动作。资源(Resource)是权限系统中的基本元素,它可以是Portlet、Page、...
通过这些角色的设置和权限分配,可以实现对Liferay平台的精细化管理,确保不同用户根据其职责拥有合适的访问权限。这对于构建安全、高效的企业级应用至关重要。 综上所述,Liferay的权限管理系统提供了一套完整而...
### Liferay权限管理详解 #### 一、企业管理与权限层级 Liferay的权限管理系统非常强大且灵活,能够满足企业级应用对于用户权限控制的各种需求。本文档将详细解析Liferay内部的权限管理模型及其运作机制。 ##### ...
这涉及到配置 Liferay 的 CAS 客户端插件,设置 CAS 服务器的相关参数,以及调整 Liferay 的安全策略。 5. **集成 Liferay 和 LDAP**:Liferay 可以与 LDAP 服务器进行集成,用于用户身份验证和授权。这包括在 ...
Liferay权限管理系统是Liferay门户平台的核心组成部分,用于控制用户对平台内容和功能的访问。这一系统基于严格的层次结构和角色分配,确保了资源的安全性和访问的灵活性。 1. **权限管理层次**: - **企业管理...
这有助于开发者理解和调整Liferay的权限配置,以实现更精确的访问控制。 另一方面,`www.pudn.com.txt`可能是一个链接或说明文件,提供了更多关于此主题的来源或者补充信息,比如在Pudn网站上可能有相关的讨论或...
权限管理系统允许管理员灵活地设置不同级别的权限,确保系统安全的同时满足不同用户的使用需求。 在实际应用中,Liferay的权限管理界面允许用户直观地分配和管理权限,包括添加、删除、修改权限,以及为角色分配...
《Liferay配置使用开发大全》是一本全面介绍Liferay Portal平台的指南,涵盖了从环境配置到深度开发的全过程。Liferay Portal是一款开源的企业级内容管理平台,广泛应用于构建企业内部和外部的协作、社交和信息发布...
在Liferay平台上进行权限开发是实现企业级应用安全性与灵活性的关键步骤。本文将详细解析Liferay权限系统的...这不仅涉及权限配置的设置,还包含了对Liferay框架的深入理解和利用,从而实现更高级别的权限管理功能。
开发者需要理解角色、权限、资源的概念,以及如何为portlet设置安全策略。这将确保你的应用能根据用户的权限提供适当的功能。 Liferay还支持工作流和内容管理,你可以通过流程定义语言(BPMN)设计复杂的业务流程,并...