liferay的权限实践

[size=16]Liferay的权限结构(liferay版本4.3.3)[/size]
Liferay能对每个具体的portlet进行控制,也能对portlet内的实体对象进行权限控制。
Liferay中进行管理的资源分为两种:
Portlet资源和model资源。
通过liferay的管理portlet就可以可视化的实现portlet的权限管理。
如果要对portlet内的实体对象model进行管理,需要进行一些程序实现。
现以一个具体的实例来说明如何实现portlet内的model资源的权限管理:
一个报表的portlet,其中包含一个具体的报表列表。我们需要对每个具体报表进行权限控制。
[size=16]建表[/size]
首先报表需要保存在数据库中,为报表建立报表数据库。根据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。
[size=16]配置权限[/size]
针对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" />
[size=16]实现具体权限[/size]
根据model-resource中声明的权限,在类中具体实现。针对声明的ADD,DELETE和PERMISSIONS权限,
在类ReportLocalServiceImpl中实现相应的方法。
进入ext-impl目录,执行ant build-service,为实现的方法生成对应的接口和工具类静态方法
[size=16]权限验证[/size]
当权限实现后,会在操作时进行验证。验证分两部分,前台页面的按权限展现和后台执行功能时的验证。
并且对于portlet得验证,可以直接调用liferay已经实现的权限助手类,对于portlet内的model资源,则需要自己实现权限助手类
ReportPermissions。
权限助手类包含两个方法,check和contains。
check方法适用于后台验证,contains方法适用于前台验证。
前台展现时的验证方法:在jsp页面中,如果要显示对应功能的展示按钮或链接时,调用权限验证的方法contains()。
后台实现功能时验证:ReportsServiceImpl类中的每个方法都调用相应的ReportsLocalServiceUtil中的方法,并且在调用之前执行验证方法check(),以实现功能的验证。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值