1

我想知道是否有一种方法可以默认为所有门户用户激活“合并 Liferay 公共页面”选项。

可以在此处设置此选项(查看屏幕截图):控制面板 > 个人站点 > 站点页面 > 公共页面 > 高级。

在此处输入图像描述

我搜索了门户属性选项,但没有找到任何东西。

如果有办法通过钩子设置它,我也很感兴趣。

4

1 回答 1

1

我找到了解决方案。

我在我的 AutoLogin 挂钩中添加了一些代码(请参阅可以在porttail.properties文件中设置的 Liferay auto.login.hook 属性)。

使用 GroupServiceUtil 类很容易设置“合并公共页面”选项:

GroupServiceUtil.updateGroup(user.getGroupId(), "mergeGuestPublicPages=true");

如果引发“com.liferay.portal.security.auth.PrincipalException: PermissionChecker not initi alized”错误。有必要首先初始化权限检查器。这是一种方法:

Company company = PortalUtil.getCompany(request);
Role adminRole =  RoleLocalServiceUtil.getRole(company.getCompanyId(),"Administrator");
List<User> adminUsers = UserLocalServiceUtil.getRoleUsers(adminRole.getRoleId());

PrincipalThreadLocal.setName(adminUsers.get(0).getUserId());
try {
    PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(adminUsers.get(0));
    PermissionThreadLocal.setPermissionChecker(permissionChecker);
} catch (Exception e) {
    e.printStackTrace();
}
于 2013-10-22T14:15:49.887 回答