gpt4 book ai didi

permissions - Liferay - 如何通过检查用户权限来隐藏/显示按钮

转载 作者:行者123 更新时间:2023-12-04 03:15:15 26 4
gpt4 key购买 nike

我有一个托管在 liferay 门户上的 Web 应用程序。有某些功能,例如仅基于 liferay 中定义的自定义权限为某些用户显示保存按钮。

我已经使用来自的引用配置了 xml 文件中的权限,如下所示
http://www.liferay.com/community/wiki/-/wiki/Main/Permissioning+in+Plugin+Environment#section-Permissioning+in+Plugin+Environment-DEFINING+PERMISSION+FOR+A+PORTLET+RESOURCE+IN+PLUGIN+ENVIRONMENT

<?xml version="1.0"?>
<resource-action-mapping>
<portlet-resource>
<portlet-name>TESTPortlet</portlet-name>
<permissions>
<supports>
<action-key>SEARCH_BUTTON</action-key>
<action-key>SAVE_BUTTON</action-key>
<action-key>DELETE_BUTTON</action-key>
</supports>
</permissions>
</portlet-resource>
</resource-action-mapping>

我可以在我的 portlet 下门户的权限选项卡中看到上述权限。我还为其中一个用户角色分配了 SAVE_BUTTON 权限,比如说(TEST_ADMIN 是我的角色)。

如果登录的用户具有 SAVE_BUTTON 权限,我如何 checkin 我的 jsp 或 java。

我尝试使用以下代码进行访问检查。
<c:if test="<%= PortletPermissionUtil.contains(permissionChecker,plid.longValue(), "TESTPortlet_WAR_TESTPortlet5121","SAVE_BUTTON") %>">

但是,即使我在上面的检查中通过了 SEARCH_BUTTON 权限,它也总是返回 true。如果我传递了我的配置本身不存在的权限,则上述检查仅返回 false。我想上面的检查是要知道权限是否在 portlet 中可用并且不在用户访问级别。

此外,如果我使用 Liferay SVN 存储库中的以下代码,我总是得到值为 Yes。
%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

<%@ taglib uri="http://liferay.com/tld/security" prefix="liferay-security" %>
<%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %>
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>

<portlet:defineObjects />

<liferay-theme:defineObjects />

<%
long groupId = scopeGroupId;
String name = portletDisplay.getRootPortletId();
String primKey = portletDisplay.getResourcePK();
String actionId = "ADD_SOMETHING";
%>

Do you have the <i><liferay-ui:message key='<%= "action." + actionId %>' /></i> permission for this portlet?

<strong>

<c:choose>
<c:when test="<%= permissionChecker.hasPermission(groupId, name, primKey, actionId) %>">
Yes
</c:when>
<c:otherwise>
No
</c:otherwise>
</c:choose>

</strong>

任何人都可以帮忙,如何检查登录用户是否有权访问特定权限,以便我可以隐藏或显示我的按钮。

提前致谢。

最佳答案

我现在可以使用权限。问题是,早些时候,我将我的 portlet 添加到用户公共(public)页面,似乎所有权限默认都继承给他的用户。

一旦我将 portlet 移动到社区页面并为用户提供社区角色,我的上述代码就开始按预期工作。

关于permissions - Liferay - 如何通过检查用户权限来隐藏/显示按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24053002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com