浏览 3823 次
锁定老帖子 主题:liferay的权限实践
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-12-04
最后修改:2008-12-24
Liferay的权限结构(liferay版本4.3.3)
Liferay能对每个具体的portlet进行控制,也能对portlet内的实体对象进行权限控制。 Liferay中进行管理的资源分为两种: Portlet资源和model资源。 通过liferay的管理portlet就可以可视化的实现portlet的权限管理。 如果要对portlet内的实体对象model进行管理,需要进行一些程序实现。 现以一个具体的实例来说明如何实现portlet内的model资源的权限管理: 一个报表的portlet,其中包含一个具体的报表列表。我们需要对每个具体报表进行权限控制。 建表 首先报表需要保存在数据库中,为报表建立报表数据库。根据liferay的开发过程,步骤如下: 在ext-impl文件夹下,新建service.xml,该xml文件描述报表数据表的字段信息,并指定对应的java对象。设定<entity name="AIReports" local-service="true"> 进入ext-impl目录,执行命令:ant build-service。 自动生成建表的sql语句,在ext\sql\portal-tables.sql中。Copy该语句并执行,生成对应的表。 之后,liferay自动生成相应的java类和接口,根据xml文件的描述不同,生成的类会有差别,主要有如下类: 实体类,Reports 持久类,ReportsPersistence,ReportsPersistenceImpl,ReportsUtil。 LocalService类,ReportsLocalServiceImpl,ReportsLocalService, ReportsLocalServiceUtil。. Service类,ReportServiceImpl,ReportsService,ReportServiceUtil。 配置权限 针对portlet和报表对象,进行权限声明。 在ext-impl\resource-actions目录下,建立report.xml文件。 在该文件中,配置resource-action-mapping中的portlet-resource和 model-resource.。 并向系统指明该文件的位置。在ext-impl\portal-ext.properties中指明属性resource.actions.configs= resource-actions/default.xml,resource-actions/default-ext.xml。 并在resource-actions/default-ext.xml文件中,指明 <resource file="resource-actions/yjreport.xml" /> 实现具体权限 根据model-resource中声明的权限,在类中具体实现。针对声明的ADD,DELETE和PERMISSIONS权限, 在类ReportLocalServiceImpl中实现相应的方法。 进入ext-impl目录,执行ant build-service,为实现的方法生成对应的接口和工具类静态方法 权限验证 当权限实现后,会在操作时进行验证。验证分两部分,前台页面的按权限展现和后台执行功能时的验证。 并且对于portlet得验证,可以直接调用liferay已经实现的权限助手类,对于portlet内的model资源,则需要自己实现权限助手类 ReportPermissions。 权限助手类包含两个方法,check和contains。 check方法适用于后台验证,contains方法适用于前台验证。 前台展现时的验证方法:在jsp页面中,如果要显示对应功能的展示按钮或链接时,调用权限验证的方法contains()。 后台实现功能时验证:ReportsServiceImpl类中的每个方法都调用相应的ReportsLocalServiceUtil中的方法,并且在调用之前执行验证方法check(),以实现功能的验证。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-07-31
在 实现具体权限 那块.
应该怎么实现呢.能具体说明一下吗 |
|
返回顶楼 | |
发表时间:2008-08-12
实现具体权限,应该理解为实现具体的功能,这些功能是与权限对应的。这些功能主要是在通过权限验证之后进行调用。
因此具体点,比如对应添加的权限,则具体实现添加的功能。 |
|
返回顶楼 | |