2016-10-10 54 views
1

我試圖創建一個使用新的API項目在AEM 6.2項目[https://docs.adobe.com/docs/en/aem/6-2/develop/ref/javadoc/com/adobe/cq/projects/api/Project.html]如何將用戶和角色添加到使用AEM 6.2 Project API創建的項目?

我能夠創建項目,還可以使用,我該項目開發的模板。

我創建的項目爲:

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

我看到了異常,如: 原因:com.adobe.cq.projects.impl.team.TeamException:角色role_editor不適用於管理員。

我試圖在名單「usersIds」的值映射到「rolesIds」,如.. (用戶ID)ksurendra - >(角色ID)role_editor (這是另外一個問題,也許是API開發人員應該使人們而不是使用兩個單獨的列表)

欣賞任何想法。

回答

0

一些研究和測試後,我找到了解決辦法。

的解決方案是一個業主之前的任何用戶分配給項目添加到項目中。

所以,當你調用

project.updateMembers(userIds, roleIds); 

確保爲用戶id和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"); 

一些背景到溶液中。

  1. 當我們使用API​​創建項目時,我們需要使用模板。每個模板都會有一組預定義的角色。這些角色將被分配到該項目(見下文)。

enter image description here

  • 當我們添加用戶到上述項目,我們需要定義的「角色」該用戶將具有上的項目。這是關鍵的。

  • 每個項目都會有一個團隊,一個項目需要在任何其他用戶可以分配給有所有者

  • 參考文獻:

    1. 定位爲 「默認」 模板是/庫/ CQ /核心/內容/項目/模板/默認

    2. Project API here

    3. AEM 6.2 Projects