2013-10-14 5 views
1

모든 포털 사용자에 대해 기본적으로 "Liferay 공용 페이지 병합"옵션을 활성화하는 방법을 알고 싶습니다.기본적으로 모든 사용자에게 "Liferay 공개 페이지 병합"옵션 사용

이 옵션은 여기에서 설정할 수 있습니다 (스크린 샷을보세요) : 제어판> 개인 사이트> 사이트 페이지> 공개 페이지> 고급.

enter image description here

나는 포털 속성 옵션을 수색했지만 아무것도 찾지 못했습니다.

후크를 통해 설정할 수있는 방법이 있으면 관심이 있습니다.

답변

1

해결책을 찾았습니다.

내 AutoLogin 후크에 약간의 코드를 추가했습니다 (portail.properties 파일에서 설정할 수있는 Liferay auto.login.hook 속성 참조). 는 "com.liferay.portal.security.auth.PrincipalException가 : PermissionChecker initi하지 alized"경우

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

: 오류가

그것은 GroupServiceUtil 클래스와 "대중 페이지를 병합"옵션을 설정 쉽게 높인. 처음에는 권한 검사기를 초기화해야합니다. 방법은 다음과 같습니다.

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(); 
}