我已经阅读了所有与liferay有关的话题,也看了很多教程,但不幸的是,我仍然无法理解liferay权限的概念。
如果您能回答我的问题,我将非常感激。
我只知道liferay portlet有两种类型的权限:model
和portlet
。
例如:
<?xml version="1.0" encoding="UTF-8"?>
<resource-action-mapping>
<portlet-resource>
<portlet-name>testFCK</portlet-name>
<permissions>
<supports>
<action-key>ADD_FOO</action-key>
<action-key>VIEW</action-key>
<action-key>DO_TRICS</action-key>
</supports>
<community-defaults>
<action-key>VIEW</action-key>
<action-key>ADD_FOO</action-key>
</community-defaults>
<guest-defaults>
<action-key>VIEW</action-key>
</guest-defaults>
<guest-unsupported>
<action-key>DO_TRICS</action-key>
</guest-unsupported>
</permissions>
</portlet-resource>
<model-resource>
<model-name>me.pd.test.model.Foo</model-name>
<portlet-ref>
<portlet-name>testFCK</portlet-name>
</portlet-ref>
<permissions>
<supports>
<action-key>DELETE</action-key>
<action-key>UPDATE</action-key>
<action-key>VIEW</action-key>
</supports>
<community-defaults>
<action-key>VIEW</action-key>
</community-defaults>
<guest-defaults>
<action-key>VIEW</action-key>
</guest-defaults>
<guest-unsupported>
<action-key>UPDATE</action-key>
<action-key>DELETE</action-key>
</guest-unsupported>
</permissions>
</model-resource>
</resource-action-mapping>
我可以使用:
<action-key>ADD_FOO</action-key>
<action-key>VIEW</action-key>
<action-key>DO_TRICS</action-key>
在我的Portlet类中,我需要检查用户是否有权限执行某项操作,例如:
try {
PortletPermissionUtil.check(themeDisplay.getPermissionChecker(), plid, PortalUtil.getPortletId(actionRequest), "ADD_FOO");
} catch(PrincipalException e){
System.out.println("NO ADD_FOO ACTION");
}
问题1:
什么是
<community-defaults>
<action-key>VIEW</action-key>
<action-key>ADD_FOO</action-key>
</community-defaults>
<guest-defaults>
<action-key>VIEW</action-key>
</guest-defaults>
意思是什么?我创建了一个社区并将用户(user1)添加到其中,但是当我检查用户权限时,他没有它。我应该在哪里使用检查?
有很多例子可以在将资源添加到基础STORE条目之前或之后使用addResources:
resourceLocalService.addResources(foo.getCompanyId(),
foo.getGroupId(), foo.getUserId(),
Foo.class.getName(),
foo.getPrimaryKey(), false,
true, true);
问题2:
为什么我应该使用它,以下最后三个参数代表什么意思?我不明白它们授予社区或访客哪些权限?
ResourceLocalServiceUtil.addResources(
entry.getCompanyId(), entry.getGroupId(), entry.getUserId(),BlogsEntry.class.getName(), entry.getPrimaryKey().toString(),
false,
addCommunityPermissions,
addGuestPermissions);
addResources
如何影响我的条目权限?
问题三:
我如何使用<model-resource>
的操作,何时应该使用它?
提前致谢。
最好的祝福