gpt4 book ai didi

liferay - 创建时如何为网站页面动态分配权限

转载 作者:行者123 更新时间:2023-12-05 00:30:22 27 4
gpt4 key购买 nike

在 Liferay 中,当添加站点页面时,它被分配 VIEW Owner 的自动权限角色,Guest角色和Site Member角色。

是否可以分配VIEW创建页面而不是手动分配 VIEW 时动态授予自定义角色的权限来自站点页面的管理权限选项卡的权限?

最佳答案

一种可能的方法是使用 LayoutListener通过钩子(Hook)

为此,您需要创建钩子(Hook)(门户属性)并覆盖以下属性:

value.object.listener.com.liferay.portal.model.Layout

请参见以下示例:

value.object.listener.com.liferay.portal.model.Layout=com.smb.mypermissions.hook.listeners.LayoutListener

这里 LayoutListener是在包 com.smb.mypermissions.hook.listeners下创建的自定义类覆盖默认值 LayoutListener .

此类签名: public class LayoutListener extends BaseModelListener<Layout>
现在覆盖该方法

public void onAfterCreate(Layout model)throws ModelListenerException

要为角色​​分配权限,请使用以下一行:

ResourcePermissionLocalServiceUtil.setResourcePermissions(
companyId, Layout.class.getName(),
ResourceConstants.SCOPE_INDIVIDUAL,
String.valueOf(primKey), role.getRoleId(),
new String[] {
ActionKeys.VIEW
});

其中角色可以从 RoleLocalServiceUtil获得和 primkey是页面唯一 ID,即 plid
long primKey = model.getPlid();

long companyId = model.getGroup().getCompanyId();

Role role = RoleLocalServiceUtil.fetchRole(companyId, "<Your Role name here>");

关于liferay - 创建时如何为网站页面动态分配权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16168925/

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