How to get the global (company) group id in Liferay without accessing ThemeDisplay
?
P.S.: with ThemeDisplay
it is simple: themeDisplay.getCompanyGroupId()
.
How to get the global (company) group id in Liferay without accessing ThemeDisplay
?
P.S.: with ThemeDisplay
it is simple: themeDisplay.getCompanyGroupId()
.
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();
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.
You can use the following :
GroupLocalServiceUtil.getCompanyGroup(PortalUtil.getDefaultCompanyId()).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;
}