Liferay以编程方式设置页面布局权限

时间:2013-02-26 09:40:51

标签: java liferay liferay-6

我的要求是,我必须以编程方式创建组织页面并为其设置权限。到目前为止,我创建了组织公共页面

layout = LayoutLocalServiceUtil.addLayout(_defaultUserId, _groupId, PRIVATE_LAYOUT, PARENT_LAYOUT_ID, pageSetting.name, pageSetting.title, description, TYPE, pageSetting.hidden, pageSetting.url, serviceContext);
LayoutLocalServiceUtil.updateLayout(layout.getGroupId(), layout.isPrivateLayout(), layout.getLayoutId(), layout.getTypeSettings());

但公共页面具有guest查看权限。我想以编程方式从来宾用户中删除view权限。有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

首先,您需要为当前的Liferay实例(公司)找到角色“Guest”:

long userRoleId = RoleLocalServiceUtil.getRole(_companyId, "Guest").getRoleId();

之后您需要删除权限:

ResourcePermissionLocalServiceUtil.removeResourcePermissions(
    _companyId,
    layout.getModelClassName(),
    ResourceConstants.SCOPE_INDIVIDUAL,
    String.valueOf(layout.getPrimaryKey()),
    userRoleId,
    new String[]{ActionKeys.VIEW}
);

编辑:根据评论更新