真不好意思,上次对liferay仅仅写了简略的概括.后来发现那么多人浏览,现在想来真是对不住大家.
我现在把权限开发的部分写出来,希望对大家有帮助.
权限开发有四个步骤:
1、定义所有的资源和权限
2、添加资源
3、把资源和必须的许可联系起来
4、返回资源前检查权限
其核心是资源的添加,资源的删除和权限的检查。
其中用的核心代码:
添加资源:使用的的类是ResourceLocalService,方法是addResource(String companyId,String usrId,String name,String primkey,boolean portletActions,boolean addCommnunityPermission,boolean addGuestPermission)
其中如果要能知道方法中各个变量的数据来源,那对整个权限开发有很大的帮助。首先是userId的来源,它是从PrincipalBean获得的,如果你看过PrincipalBean的源代码,你可以看到getUser()方法,所以你可以在ServiceImpl中获得userId,并且把它作为写入到addEntry()(可以自己定义方法名)中,添加资源的功能一般是在localServiceImpl中实现的,而companyId的获得经过一系列的过程,可以用一下数学的表达方式来表示:
User user = userPersistence.findByPrimaryKey(userId);其中userId已经在上一级获得
companyId=user.getCompanyId();
userId=user.getUserId();(不知道得到的userId和作为参数引入的userId是否一样,不过通过user获得userId作为addResource()的参数肯定不错)。
而另一个重要参数groupId的获得要比这个复杂些。
long groupId=PortalUtil.getPortletGroupId(piId)
pild=layout.getPild()
layout=themeDisplay.getLayout()
themeDisplay=(ThemeDisplay)request.getAttribute(WebKey.THEME_DISPLAY)
其中layout,themeDisplay,plid是在ation中获得,并把plid作为参数传递给serviceUtil的addEntry()方法 .
通过一级一级的传递,在localService中通过PortalUtil.getPortletGroupId(plid)获得,然后作为addResource的参数,实现把资源添加到数据中。其中companyId也是在这个阶段获得的。
另外portalAction,addCommunityPermission,addGuestPermission的数值是自己定义的,不是从系统中获得的。
删除资源deleteResource(
CompanyId(), name, ResourceImpl.SCOPE_INDIVIDUAL,EntryId());
其中companyId和添加资源用到的companyId是一样的。
权限检查
permissionChecker.hasPermission(groupId,name,PrimaryKey(), actionId);
其中groupId和添加资源中的groupId是一样的,name是实体类的类名,primaryKey是实体的关键字,actionI对资源的操作。
先写这么多
分享到:
相关推荐
### Liferay快速入门知识点详解 #### 一、Liferay Portal简介与快速启动 ...无论是对于希望快速搭建企业门户的用户,还是想要深入探索Liferay开发的开发者,这份快速入门指南都是一个不可或缺的资源。
- Liferay 提供了完整的用户管理和权限控制,支持多租户架构,使得多个组织可以在同一平台上独立运作。 - 它的界面设计是基于 Web 服务的,允许通过 Ajax 技术实现动态交互。 2. **portlet 开发**: - Portlet ...
7. **集成与API**:探索Liferay的API和Service Builder,了解如何与其他系统进行集成。 8. **扩展与插件**:了解Marketplace中的可用插件,以及如何开发自己的插件来扩展Liferay的功能。 **最佳实践** 在使用...
在IT行业中,Liferay是一款广泛使用的开源企业级门户平台,它提供了一个强大的框架来构建、管理和部署...通过不断的探索和学习,我们可以充分利用Liferay的灵活性和强大功能,为企业的数字化转型提供坚实的技术支撑。
**Liferay 简单Portlet详解** Liferay Portal 是一款开源的企业级门户平台,它提供了丰富的功能,如用户...通过实践和不断探索,开发者可以充分利用Liferay提供的各种功能,构建出满足业务需求的定制化Portlet应用。
1. **控制台管理**:通过 Liferay 控制台,管理员可以管理用户、角色、权限、站点、portlet等。 2. **性能优化**:调整缓存策略、数据库索引、服务器配置,以提高系统性能。 3. **安全设置**:配置 SSL、防火墙规则...
它提供了强大的身份管理和权限控制,使得不同角色的用户可以访问不同的内容和服务。此外,Liferay支持多种内容管理,如文档库、博客、论坛等,便于企业构建内部协作平台。它还具备高度可扩展性,可以通过插件和模块...
由于提供的部分内容包含大量无法识别的乱码,我们将主要依据标题、描述和标签来生成与Liferay相关的知识点。...无论是初学者还是有经验的开发者,都有大量的资源和社区支持可以帮助你快速上手并深入探索Liferay的世界。
7. **权限和安全**:Liferay的权限管理系统非常强大,理解用户角色、组和资源权限的管理对于构建安全的门户至关重要。 通过深入学习以上知识点,开发者可以充分利用Liferay 6.1的强大功能,构建出满足各种业务需求...
总之,"Liferay Struts2 Demo"是一个宝贵的教育资源,对于希望深入理解和实践Liferay与Struts2整合的开发者来说,它是探索这一技术领域的重要起点。通过实践这个示例,开发者可以更好地理解和运用这两个强大的工具,...
【Liferay 学习笔记】 Liferay 是一款开源的企业级门户平台,用于构建和管理复杂的Web应用程序。...在实践中,不断探索和理解Liferay的高级功能和配置,能够帮助我们构建更高效、更个性化的Web应用平台。
6. **工作流与协作**:探索Liferay的工作流引擎,如何创建自定义工作流,以及利用讨论论坛、任务分配等功能促进团队协作。 7. **集成与API**:学习Liferay的API和Web服务接口,了解如何与其他系统(如CRM、ERP等)...
### Liferay开发知识点详解 #### 一、简介 **Liferay**是一款开源的企业级门户平台,它基于Java...通过对这些知识点的学习和实践,开发者可以更快地掌握Liferay开发的核心技能,并能够在此基础上进一步探索和创新。
通过以上步骤,用户可以成功部署Liferay,开启企业级门户的探索之旅。Liferay凭借其丰富的特性和高度可定制性,成为众多企业和组织的首选门户解决方案。无论是提升用户体验,还是优化开发流程,Liferay都能提供全面...
它们通常通过门户框架(如Liferay)来管理,提供一种统一的用户界面和权限控制。 Liferay Portal是一个功能强大的企业级门户解决方案,它支持多种portlet标准,并提供丰富的API和工具,简化portlet的开发过程。在...
2. **权限管理**:Liferay内置了强大的权限管理机制,有助于保护敏感信息。 #### 实现细节 ##### 爬虫模块 爬虫模块负责从Web和本地系统中抓取源代码文件。为了提高效率,Hicode采用了多线程技术实现并发抓取。...
常见的Portal框架有IBM WebSphere Portal、Liferay Portal、Jasig uPortal等。安装过程通常包括下载软件包、配置服务器环境、安装数据库、部署应用程序等步骤。每个框架的安装方法都有所不同,但都需要遵循官方文档...
1. **struts2-portlet-2.0.14.war**:这是一个portlet应用程序的例子,portlet是可以在portlet容器(如Liferay或WebSphere Portal)中运行的独立组件。在Struts 2框架下,portlet可以利用Struts 2的拦截器、结果类型...