如何将用户和角色添加到使用AEM 6.2 Project API创建的项目中?

如何将用户和角色添加到使用AEM 6.2 Project API创建的项目中?,aem,Aem,我正在尝试使用新的项目API[]在AEM 6.2中创建项目 我能够创建项目,也可以使用我为该项目开发的模板 我创建的项目如下所示: project = projectManager.createProject("/contents/projects", "Project1", "Project Name",

我正在尝试使用新的项目API[]在AEM 6.2中创建项目

我能够创建项目,也可以使用我为该项目开发的模板

我创建的项目如下所示:

 project = projectManager.createProject("/contents/projects",
                                        "Project1", 
                                        "Project Name", 
                                        "Creating a Test Project",
                                        "/apps/myproj/projects/templates/default");
当我尝试使用以下方法向项目添加用户和角色时:

 List<String> usersIds = ...
 List<String> rolesIds = ...
 project.updateMembers(userIds, roleIds);
List usersIds=。。。
列表角色ID=。。。
project.updateMembers(userid、roleIds);
我看到的例外情况如下: 原因:com.adobe.cq.projects.impl.team.TeamException:管理员无法使用角色编辑器

我试图将列表“usersIds”中的值映射到“rolesid”,如。。 (userId)ksurendra-->(roleId)角色编辑器 (这是另一个问题,也许API开发人员应该将其作为一个映射,而不是使用两个单独的列表)


感谢您对此的任何想法。

经过一些研究和测试,我找到了解决方案

解决方案是在将任何用户分配给项目之前,向项目中添加一个所有者

所以当你打电话的时候

project.updateMembers(userIds, roleIds);
确保userid和roleIds列表的第一个值是所有者的,然后其他用户将跟随

例如:

 List<String> userIds = new ArrayList<String>{};
 userIds.add("suren");
 userIds.add("vassu");

 List<String> roleIds = new ArrayList<String>{};
 userIds.add("owner");
 userIds.add("designer");
List userid=newarraylist{};
userIds.add(“suren”);
userIds.add(“vassu”);
List roleIds=newarraylist{};
userIds.add(“所有者”);
userIds.add(“设计器”);
解决方案的一些背景知识

  • 当我们使用API创建项目时,我们需要使用模板。每个模板都有一组预定义的角色。这些角色将分配给项目(见下文)
  • 当我们向上述项目中添加用户时,我们需要定义该用户在项目中的“角色”。这是关键

  • 每个项目都有一个团队,一个项目需要有一个所有者,然后才能分配任何其他用户

  • 参考资料:

  • “默认”模板的位置是/libs/cq/core/content/projects/templates/default


  • 经过一些研究和测试,我找到了解决方案

    解决方案是在将任何用户分配给项目之前,向项目中添加一个所有者

    所以当你打电话的时候

    project.updateMembers(userIds, roleIds);
    
    确保userid和roleIds列表的第一个值是所有者的,然后其他用户将跟随

    例如:

     List<String> userIds = new ArrayList<String>{};
     userIds.add("suren");
     userIds.add("vassu");
    
     List<String> roleIds = new ArrayList<String>{};
     userIds.add("owner");
     userIds.add("designer");
    
    List userid=newarraylist{};
    userIds.add(“suren”);
    userIds.add(“vassu”);
    List roleIds=newarraylist{};
    userIds.add(“所有者”);
    userIds.add(“设计器”);
    
    解决方案的一些背景知识

  • 当我们使用API创建项目时,我们需要使用模板。每个模板都有一组预定义的角色。这些角色将分配给项目(见下文)
  • 当我们向上述项目中添加用户时,我们需要定义该用户在项目中的“角色”。这是关键

  • 每个项目都有一个团队,一个项目需要有一个所有者,然后才能分配任何其他用户

  • 参考资料:

  • “默认”模板的位置是/libs/cq/core/content/projects/templates/default