如何在不访问的情况下获取 Liferay 中的全局(公司)组 ID ThemeDisplay
?
PS:用ThemeDisplay
起来很简单:themeDisplay.getCompanyGroupId()
。
Company
当您的门户中只有一个时:
Company company = CompanyLocalServiceUtil.getCompanyByMx(PropsUtil.get(PropsKeys.COMPANY_DEFAULT_WEB_ID));
long globalGroupId = company.getGroup().getGroupId();
扩展黄色的答案company
,如果您知道 Portal Instance ( ) 的某些值,您可以找到Company
:
如果您知道webId
Portal Instance 的名称,可以company
通过以下方式找到:
String webId = "liferay.com"; // PropsUtil.get(PropsKeys.COMPANY_DEFAULT_WEB_ID)
Company company = CompanyLocalServiceUtil.getCompanyByWebId(webId);
long globalGroupId = company.getGroup().getGroupId();
如果您知道mail-domain
Portal Instance 的名称,可以company
通过以下方式找到:
String mailDomain = "liferay.com";
Company company = CompanyLocalServiceUtil.getCompanyByMx(mailDomain);
long globalGroupId = company.getGroup().getGroupId();
如果您知道virtual host
Portal Instance 的名称,可以company
通过以下方式找到:
String virtualHost = "localhost";
Company company = CompanyLocalServiceUtil.getCompanyByVirtualHost(virtualHost);
long globalGroupId = company.getGroup().getGroupId();
CompanyLocalServiceUtil
对于那些感兴趣的人,还有其他有用的方法可供探索。
感谢Yellow的领导,这真的很有帮助。
您可以使用以下内容:
GroupLocalServiceUtil.getCompanyGroup(PortalUtil.getDefaultCompanyId()).getGroupId();
如果您需要文档库的此信息,您可以使用
public static long getDefaultCompanyId(){
long companyId = 0;
try{ companyId = getDefaultCompany().getCompanyId(); }
catch(Exception e){ System.out.println(e.getClass() + " " +e.getMessage()); }
return companyId;
}
public static long getDefaultGroupId (){
long companyId = getDefaultCompanyId();
long globalGroupId = 0L;
Group group = null;
try {
group = GroupLocalServiceUtil.getGroup(companyId, "Guest");
} catch (PortalException | SystemException e) {
e.printStackTrace();
return globalGroupId;
}
globalGroupId = group.getGroupId();
return globalGroupId;
}