liferay开发小总

通过近一个半月的学习,对liferay的整体开发结构有了初步了解.liferay的开发主要分为:

 1、 应用组件开发。其中应用组件中包含功能开发、显示内容开发(portlet的JSP页面的内容显示部分),显示样式开发(portlet内容的显示样式)。功能开发主要设计到数据库操作(查询、删除、增加等)、portlet的权限开发。

2、主题开发(整个页面的显示效果)

3、布局开发

4、权限开发

 

真不好意思,上次对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对资源的操作。

先写这么多

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值