Как получить глобальный (корпоративный) идентификатор группы в Liferay?

Как получить глобальный (корпоративный) идентификатор группы в Liferay без доступа к ThemeDisplay?

P.S.: с ThemeDisplay просто: themeDisplay.getCompanyGroupId().

Ответ 1

Если на вашем портале имеется только один Company:

Company company = CompanyLocalServiceUtil.getCompanyByMx(PropsUtil.get(PropsKeys.COMPANY_DEFAULT_WEB_ID));
long globalGroupId = company.getGroup().getGroupId(); 

Ответ 2

Продолжая желтый ответ, вы можете найти 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 за лидерство, это было действительно полезно.

Ответ 3

Вы можете использовать следующее:

GroupLocalServiceUtil.getCompanyGroup(PortalUtil.getDefaultCompanyId()).getGroupId();

Ответ 4

Если вам нужна эта информация для библиотеки документов, вы можете использовать

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;
}