如何以编程方式在AEM中创建组描述[About字段或About me属性]



我编写了一个java程序来在AEM中创建一个Group。它工作得很好。但是随着Group,我还需要创建另一个Group aboutMe属性。

我代码:

ResourceResolver resourceResolver = resolverFactory.getAdministrativeResourceResolver(null);
session = resourceResolver.adaptTo(Session.class);
UserManager userManager = ((JackrabbitSession) session).getUserManager();
JackrabbitSession js = (JackrabbitSession) session;
Group group = null;
group = userManager.createGroup("TestGroup");
session.save();

是否有办法添加aboutMe属性字段?

你可以做group.setProperty("jcr:description","your string")或任何属性。参考javadocs

com.adobe.granite.security.user添加依赖项到项目pom

注入
  @Reference
  private UserPropertiesService service;

获取UserProperties对象(资源是你的组的资源实例)-

if (this.service != null) {
        Authorizable authorizable = (Authorizable)resource.adaptTo(Authorizable.class);
        UserProperties userProperties;
        if (authorizable == null)
        {
          UserProperties userProperties = (UserProperties)resource.adaptTo(UserProperties.class);
          if (userProperties != null) {
            UserManager uMgr = (UserManager)resolver.adaptTo(UserManager.class);
            authorizable = uMgr.getAuthorizable(userProperties.getAuthorizableID());
          }
        }
        else
        {
          Session session = ((Node)resource.adaptTo(Node.class)).getSession();
          UserPropertiesManager mgr = this.service.createUserPropertiesManager(session, resolver);
          String propPath = request.getParameter("path");
          userProperties = mgr.getUserProperties(authorizable, propPath);
        }

一旦你得到UserProperties,你可以添加aboutMe信息到你的组。

有关进一步参考,请阅读此处的javadocs

最新更新