浏览 6091 次
锁定老帖子 主题:liferay新增权限(二)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-02-14
最后修改:2008-11-16
public static void check( PermissionChecker permissionChecker, long plid, long categoryId, String actionId) throws PortalException, SystemException, Exception { if (!contains(permissionChecker, plid, categoryId, actionId)) { throw new PrincipalException(); } } public static void check( PermissionChecker permissionChecker, long categoryId, String actionId) throws PortalException, SystemException, Exception { if (!contains(permissionChecker, categoryId, actionId)) { throw new PrincipalException(); } } public static void check( PermissionChecker permissionChecker, CategoryEntry category, String actionId) throws PortalException, SystemException { if (!contains(permissionChecker, category, actionId)) { throw new PrincipalException(); } } public static boolean contains( PermissionChecker permissionChecker, long pld, long categoryId, String actionId) throws PortalException, SystemException, Exception { if (categoryId == ProductCategoryUtil.DEFAULT_PARENT_CATEGORY_ID) { return PortletPermissionUtil.contains( permissionChecker, pld, "PROTLET_NAME", actionId); } else { return contains(permissionChecker, categoryId, actionId); } } public static boolean contains( PermissionChecker permissionChecker, long categoryId, String actionId) throws PortalException, SystemException, Exception { CategoryEntry category = CategoryEntryServiceUtil.findByPrimaryKey(categoryId); return contains(permissionChecker, category, actionId); } public static boolean contains( PermissionChecker permissionChecker, CategoryEntry category, String actionId) throws PortalException, SystemException { return permissionChecker.hasPermission( category.getGroupId(), CategoryEntry.class.getName(), category.getCategoryId(), actionId); } 一个check对应一个contains,两个用在不同的场合,check用在后台持久化操作时候会抛出一个权限不足的错误,而contains用在JSP只是用来验证权限的.其实可以看出最后都是调用permissionChecker.hasPermission方法的,四个参数:1社区ID,2元素class名,3主键,4所操作的权限(要和order.xml中定义的权限名相同).还有一个PortletPermissionUtil.contains方法,这个是用来验证当前portlet操作权限的,他有四个参数:1permissionChecker,2当前layout.getPlid(),3portlet名,4所操作权限. 至于里面的参数的获得可以参照一下liferay原码中的shopping card,这个里面有这些参数的获得方法.有这个权限后,就可以把权限控制到每一个元素上. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-02-19
不用自动生成持久化代码行吗?那些代码都是必需的吗?
|
|
返回顶楼 | |
发表时间:2008-03-27
能不能再说得详细点,order表结构是什么样的,在后台和jsp页面是怎么调用呢?
|
|
返回顶楼 | |
发表时间:2008-04-14
权限这块 我觉得你说的太粗了 liferay中所有的权限验证都是在围绕permissionChecker.hasPermission()转 不管check也好(以及check调用的)contains也好。大家最好参考http://docs.huihoo.com/liferay/4.3/portlet-development-guide/ch05.html这个,然后自己看看源码。
|
|
返回顶楼 | |
发表时间:2008-04-14
雪飞南国 19 分钟前 权限这块 我觉得你说的太粗了 liferay中所有的权限验证都是在围绕permissionChecker.hasPermission()转不管check也好(以及check调用的)contains也好。大家最好参考http: //docs.huihoo.com/liferay/4.3/portlet-development-guide/ch05.html这个,然后自己看看源码。 --------------------------------------------------------- 你说的是对的,权限的核心就是permissionChecker这个类,在这里我只是讲了如何去用这个类按照liferay的操作方式来开发自已的权限,至这个类里面做了什么我这里并没有讲。简单说一下,他先是看缓存中有没有记录,没有再看是否登陆,然后再去找表resource_,resourceCode,最后才是permission表,在这个过程中他的判断分支是很多的,有兴趣大家可以去看一下他是怎么做的,这里我就不多讲了。 |
|
返回顶楼 | |
发表时间:2008-04-14
雪飞南国 19 分钟前 权限这块 我觉得你说的太粗了 liferay中所有的权限验证都是在围绕permissionChecker.hasPermission()转不管check也好(以及check调用的)contains也好。大家最好参考http: //docs.huihoo.com/liferay/4.3/portlet-development-guide/ch05.html这个,然后自己看看源码。 --------------------------------------------------------- 你说的是对的,权限的核心就是permissionChecker这个类,在这里我只是讲了如何去用这个类按照liferay的操作方式来开发自已的权限,至这个类里面做了什么我这里并没有讲。简单说一下,他先是看缓存中有没有记录,没有再看是否登陆,然后再去找表resource_,resourceCode,最后才是permission表,在这个过程中他的判断分支是很多的,有兴趣大家可以去看一下他是怎么做的,这里我就不多讲了。 |
|
返回顶楼 | |
发表时间:2008-04-14
雪飞南国 19 分钟前 权限这块 我觉得你说的太粗了 liferay中所有的权限验证都是在围绕permissionChecker.hasPermission()转不管check也好(以及check调用的)contains也好。大家最好参考http: //docs.huihoo.com/liferay/4.3/portlet-development-guide/ch05.html这个,然后自己看看源码。 --------------------------------------------------------- 你说的是对的,权限的核心就是permissionChecker这个类,在这里我只是讲了如何去用这个类按照liferay的操作方式来开发自已的权限,至这个类里面做了什么我这里并没有讲。简单说一下,他先是看缓存中有没有记录,没有再看是否登陆,然后再去找表resource_,resourceCode,最后才是permission表,在这个过程中他的判断分支是很多的,有兴趣大家可以去看一下他是怎么做的,这里我就不多讲了。 |
|
返回顶楼 | |
发表时间:2008-04-14
http: //docs.huihoo.com/liferay/4.3/这个网址不错,我记下来了,对雪飞南国 表示感谢.
|
|
返回顶楼 | |
发表时间:2008-04-15
我也是刚进公司学习这个东西,权限这块比较复杂。看得我头晕,幸好已有些眉目。你的文章也对我很有帮助。共同学习!~
|
|
返回顶楼 | |
发表时间:2008-06-25
我真的真的真的很奇怪,博主太强了,你是怎么知道这些内容!
要不是看到你的这篇文章,我真的要自己重写系统了 |
|
返回顶楼 | |