2012-06-27 41 views
3

我們有一個外部身份管理系統,必須使用Sling和REST來管理CQ5中用戶的生命週期。通過吊索重命名用戶

我們能夠創建和刪除用戶和組

我們的問題是,我們沒有找到出去怎麼樣將用戶(或組)重命名爲

我們如何重命名用戶?

我們發現的唯一的解決辦法是

  1. 列表中的用戶
  2. 刪除用戶
  3. 創建一個新用戶的所有組成員
  4. 重新創建所有的組成員

雖然這個解決方案可以工作,但很可能會造成一些性能問題(我們h超過7萬用戶和超過15萬組)。如果這是唯一的解決方案:我們如何通過REST高效地執行第一步(列出所有成員資格)

回答

1

知道這不能解決您的問題,但僅僅指出通過REST進行重命名似乎成爲一個不走的路。 docs似乎相當明確:

jackrabbit-usermanager捆綁提供了一個REST接口來創建,更新和刪除JCR中的用戶和組。

要更新現有的用戶POST到/system/userManager/user/username.update ..請求不能更新的用戶名或密碼(見下文更改密碼)唯一的附加屬性更新通過這個URL。

雖然在同一頁上,它似乎是針對特定用戶的查詢應該帶回他們組成員:

$ curl http://localhost:8080/system/userManager/user/admin.tidy.1.json 

{ 
    "memberOf": [], 
    "declaredMemberOf": [] 
} 

不知道CQ鎖定了獲取用戶信息的這種方式。

+0

謝謝,看來CQ的行爲就是這樣。我們將不得不選擇刪除/創建選項。這對於許多用戶和資源來說並不理想。我們也在考慮通過權限組(而不是直接)授予權限。因此,在刪除組時,我們只需查看組成員資格(而不是ACL) – Matteo

+0

請注意,Sling是一個Apache項目,您可以查看這些函數的源代碼,並可能提出改進建議以幫助您用例。我不知道如果「不重命名」是Sling限制或與下層綁定的某些事物,但可能值得一看。 –