我写了一个java程序来在AEM中创建一个组。它工作得很好。但除了组之外,我还需要创建另一个组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属性字段?
发布于 2016-09-23 16:26:26
您可以使用group.setProperty("jcr:description","your string")
或任何属性。请参阅javadocs here
更新
将依赖项添加到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
信息添加到您的组中。
https://stackoverflow.com/questions/39653726
复制相似问题