如何在Liferay中获取全局(公司)组ID?

12

如何在不访问ThemeDisplay的情况下获取Liferay中的全局(公司)组ID?

P.S.:使用ThemeDisplay很简单:themeDisplay.getCompanyGroupId()


如果您无法访问themeDisplay,您可能需要更多地说明您实际上需要访问此信息的位置。 - Olaf Kock
哦 - 根据(被接受的)答案,它甚至比我想象的更简单 - 或者更全局。猜测我的想法太复杂了 - 很高兴你找到了它。 - Olaf Kock
5个回答

22

当您的门户中只有一个公司时:

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

CompanyLocalServiceUtil.getCompanyByMx(..) 这个方法在哪里找到的?太好了,谢谢! - Mark
我认为使用CompanyLocalServiceUtil.getCompanyByWebId()会更加正确。 - AdrianRM

14

在扩展 黄色答案 的基础上,如果您知道 Portal 实例(Company)的某个值,可以找到 company

  1. 如果您知道门户实例的webId,则可以通过以下方式找到company

String webId = "liferay.com"; // PropsUtil.get(PropsKeys.COMPANY_DEFAULT_WEB_ID)
Company company = CompanyLocalServiceUtil.getCompanyByWebId(webId);
long globalGroupId = company.getGroup().getGroupId();
如果您知道门户实例的邮件域,可以通过以下方式找到公司:company
String mailDomain = "liferay.com";
Company company = CompanyLocalServiceUtil.getCompanyByMx(mailDomain);
long globalGroupId = company.getGroup().getGroupId();
  • 如果您知道门户实例的虚拟主机,可以通过以下方式找到公司:

  • String virtualHost = "localhost";
    Company company = CompanyLocalServiceUtil.getCompanyByVirtualHost(virtualHost);
    long globalGroupId = company.getGroup().getGroupId();
    

    如有兴趣,还可以探索CompanyLocalServiceUtil中提供的其他有用方法。

    感谢Yellow提供的线索,它真的很有帮助。


    7
    您可以使用以下内容:
    GroupLocalServiceUtil.getCompanyGroup(PortalUtil.getDefaultCompanyId()).getGroupId();
    

    0
    如果您需要此信息用于文档库,您可以使用


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

    0
    对于2023年查询此信息的任何人:
    只需使用:com.liferay.portal.kernel.util.PortalUtil.getDefaultCompanyId()

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接