在Liferay 7.3中删除角色的权限。

问题描述 投票:0回答:1

我试图从下拉菜单中隐藏不必要的部分,确切的说是通知,共享内容,我的提交,我的工作流任务等。

我可以通过以下方式删除它们 Control panel -> Users -> Roles -> User -> Permissions

有没有办法通过Hooks或者配置文件来实现同样的结果?

我在运行docker时,使用 liferay/portal:7.3.0-ga1 图像,因此需要在没有GUI的情况下也能实现。

docker permissions roles liferay-7.3
1个回答
0
投票

经过各种研究,我想到了这个办法。

private void removePermissions() throws PortalException {
    List<String> portletList = Arrays.asList("com_liferay_users_admin_web_portlet_MyOrganizationsPortlet",
            "com_liferay_my_account_web_portlet_MyAccountPortlet",
            "com_liferay_portal_workflow_web_internal_portlet_UserWorkflowPortlet",
            "com_liferay_portal_workflow_task_web_portlet_MyWorkflowTaskPortlet",
            "com_liferay_notifications_web_portlet_NotificationsPortlet",
            "com_liferay_sharing_web_portlet_SharedAssetsPortlet",
            "com_liferay_oauth2_provider_web_internal_portlet_OAuth2ConnectedApplicationsPortlet"
    );

    String primKey = String.valueOf(company.getPrimaryKey());

    for (String portlet : portletList) {
        ResourcePermissionLocalServiceUtil.removeResourcePermission(
                companyId,
                portlet,
                ResourceConstants.SCOPE_COMPANY,
                primKey,
                userRole.getRoleId(),
                "ACCESS_IN_CONTROL_PANEL");
    }

}

companyId,userRole可以通过RoleLocalServiceUtil和CompanyLocalServiceUtil实现。PrimKey是根据范围不同而不同。本博客 帮助我理解了很多。我在通过GUI删除权限时,通过开发者控制台嗅到了portlet的名字。我还没有找到更干净的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.