アクセスせずにLiferayでグローバル(会社)グループIDを取得するにはどうすればよいThemeDisplay
ですか?
PS:ThemeDisplay
それは簡単です:themeDisplay.getCompanyGroupId()
。
Company
ポータルに1つしかない場合:
Company company = CompanyLocalServiceUtil.getCompanyByMx(PropsUtil.get(PropsKeys.COMPANY_DEFAULT_WEB_ID));
long globalGroupId = company.getGroup().getGroupId();
黄色の答えcompany
を拡張すると、ポータルインスタンスの値を知っている場合に見つけることができます( Company
):
ポータルインスタンスのを知っている場合は、次webId
の方法で見つけることができますcompany
。
String webId = "liferay.com"; // PropsUtil.get(PropsKeys.COMPANY_DEFAULT_WEB_ID)
Company company = CompanyLocalServiceUtil.getCompanyByWebId(webId);
long globalGroupId = company.getGroup().getGroupId();
ポータルインスタンスのを知っている場合は、次mail-domain
の方法で見つけることができますcompany
。
String mailDomain = "liferay.com";
Company company = CompanyLocalServiceUtil.getCompanyByMx(mailDomain);
long globalGroupId = company.getGroup().getGroupId();
ポータルインスタンスのを知っている場合は、次virtual host
の方法で見つけることができます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;
}