How to get the global (company) group id in Liferay without accessing ThemeDisplay
?
P.S.: with ThemeDisplay
it is simple: themeDisplay.ge
You can use the following :
GroupLocalServiceUtil.getCompanyGroup(PortalUtil.getDefaultCompanyId()).getGroupId();
Extending yellow's answer, you can find the company
if you know some value of the Portal Instance (Company
):
If you know the webId
of the Portal Instance, can find company
by:
String webId = "liferay.com"; // PropsUtil.get(PropsKeys.COMPANY_DEFAULT_WEB_ID)
Company company = CompanyLocalServiceUtil.getCompanyByWebId(webId);
long globalGroupId = company.getGroup().getGroupId();
If you know the mail-domain
of the Portal Instance, can find company
by:
String mailDomain = "liferay.com";
Company company = CompanyLocalServiceUtil.getCompanyByMx(mailDomain);
long globalGroupId = company.getGroup().getGroupId();
If you know the virtual host
of the Portal Instance, can find company
by:
String virtualHost = "localhost";
Company company = CompanyLocalServiceUtil.getCompanyByVirtualHost(virtualHost);
long globalGroupId = company.getGroup().getGroupId();
There are also other useful methods available to explore in CompanyLocalServiceUtil, for those who are interested.
Thanks Yellow for the lead, it was really helpful.
When you have only one Company
in your portal:
Company company = CompanyLocalServiceUtil.getCompanyByMx(PropsUtil.get(PropsKeys.COMPANY_DEFAULT_WEB_ID));
long globalGroupId = company.getGroup().getGroupId();
If you need this info for Document Library, you can use
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;
}