ThemeDisplay
にアクセスせずにLiferayでグローバル(会社)グループIDを取得するにはどうすればよいですか?
追伸:ThemeDisplay
を使用すると、簡単です:themeDisplay.getCompanyGroupId()
。
ポータルにCompany
が1つしかない場合:
Company company = CompanyLocalServiceUtil.getCompanyByMx(PropsUtil.get(PropsKeys.COMPANY_DEFAULT_WEB_ID));
long globalGroupId = company.getGroup().getGroupId();
黄色の answer を拡張すると、ポータルインスタンス(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
で探索できる他の便利な方法もあります。
ありがとう 黄色 リードしてくれて、本当に助かりました。
あなたは以下を使うことができます:
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;
}