Pra*_*h K 7 permissions administration liferay liferay-6
环境:Liferay 6.1 GA3 EE
我们可以为门户网站定义自定义权限吗?
我们可以通过创建带有<portlet-resource>标记的XML 并<action-key>在其中定义来在我们的插件portlet中创建自定义权限.
当我在控制面板中为角色定义权限时,我的portlet出现在该部分中Site Applications,现在我想要的是在portlet或钩子中创建自定义权限(而不是通过EXT)应该有一个单独的类别,My Custom并且应该有自定义喜欢的权限<action-key>ACCESS_EMAIL</action-key>,<action-key>ACCESS_TOOLSET<\action-key>等等.
简而言之,Portal当我定义自定义Portal(常规)角色的权限时,我的自定义类别应出现在如下图所示的部分中:

我想使用此权限不是为了特定的portlet,而是需要在jsp-hooks或我的任何其他自定义portlet中使用它.就像我们ADD_SITE,ADD_USER在等权限Portal- > General,我想有这些权限为一般.
编辑
为了使portlet出现在我创建一个简单的自定义portlet的任何部分中,所以portlet出现在该Site Application部分中,如果我想,我也可以使它出现在这些Control Panel部分中.
但现在问题是我在这个portlet中没有任何视图或任何实现,因此我通过更新liferay-display.xml并将其置于隐藏状态来隐藏它category.hidden.这也隐藏了Define Permission下拉菜单.
如果我不使用lifeay-display.xmlliferay,则在Undefined从+Adddockbar中的菜单访问时将其置于类别下.:-(
谢谢
这就是我们实现它的方式:
/resource-actions/custompermission.xml以指定我们想要的不同自定义权限.完整步骤与此Wiki相同.Add在dockbar 的菜单中,既不会出现在控制面板中,也不会出现在Define Permissions下拉列表中.现在创建一个JSP钩子(您可以创建一个单独的插件或在第1点中定义的自定义portlet中包含钩子)并修改/docroot/html/portlet/roles_admin/edit_role_permissions_navigation.jspf以包含我们的自定义类别:
<aui:form action="<%= currentURL %>" name="resourceSelection">
<aui:fieldset>
<aui:select changesContext="<%= true %>" name="add-permissions" onchange='<%= renderResponse.getNamespace() + "addPermissions(this);" %>'>
<aui:option label="" />
<%-- Our customization starts here --%>
<%--
We have added our very own option group but this is not required just the <aui:option> will do
--%>
<optgroup label="<liferay-ui:message key="custom" />">
<%
if (_isCustomPermissionsPortlet(CUSTOM_PERMISSIONS_PORTLET)) {
editPermissionsURL.setParameter("portletResource", CUSTOM_PERMISSIONS_PORTLET);
editPermissionsURL.setParameter("showModelResources", "0");
%>
<%--
and here we add our own Permission category drop-down option
--%>
<aui:option label="custom-permissions"
selected="<%= _isCurrent(editPermissionsURL.toString(), portletResource, showModelResources) %>"
value="<%= editPermissionsURL.toString() %>" />
<%
}
%>
</optgroup>
<%-- Our customization ends here --%>
<c:choose>
<c:when test="<%= role.getType() == RoleConstants.TYPE_SITE %>">
<optgroup label="<liferay-ui:message key="administration" />">
<% // Other liferay stuff continues ...
Run Code Online (Sandbox Code Playgroud)
在JSP结束时,我们有:
// ... other liferay stuff
private boolean _isOrganizationPortlet(String portletId) {
return ArrayUtil.contains(_ORGANIZATION_PORTLETS, portletId);
}
private boolean _isPortalPortlet(String portletId) {
return ArrayUtil.contains(_PORTAL_PORTLETS, portletId);
}
// Our customization starts here
// portlet's ID
public static final String CUSTOM_PERMISSIONS_PORTLET = "CustomPermissions_WAR_CustomPermissionsportlet";
private static final String[] _CUSTOM_PERMISSIONS_PORTLET = {
CUSTOM_PERMISSIONS_PORTLET,
};
private boolean _isCustomPermissionsPortlet(String portletId) {
return ArrayUtil.contains(_CUSTOM_PERMISSIONS_PORTLET, portletId);
}
// Our customization ends here
Run Code Online (Sandbox Code Playgroud)
这是它在控制面板中的外观:

我们也可以Portal通过将自定义代码移动到JSP中的那个位置来移动该部分中的权限.
拥有它的优点是,当我们想要为站点角色设置定义权限时,它将显示.
希望这有助于某人.
| 归档时间: |
|
| 查看次数: |
2171 次 |
| 最近记录: |