كيفية الحصول على عقدة المجموعة في WebScript المدعومة من Java's
سؤال
مع JavaScript Webscript ، يمكنني الحصول على عقدة جماعية مع الكود التالي:
var group = People.getGroup(groupname);
ماذا سيكون المكافئ المدعوم من Java لهذا الرمز؟
حتى الآن لا يمكنني الحصول على مجموعة من جميع أسماء المجموعات فقط ، لكنني أود أن أكون قادرًا على التكرار من خلال المجموعة والحصول على عقدة المجموعة الفعلية.
//Gets all groups, but only as a set of groupnames
Set<String> groups = new HashSet<String>();
groups.addAll(authorityService.getAllAuthorities(AuthorityType.GROUP));
for (String groupname : groups) {
//jscript equivalent - var group = People.getGroup(groupname);
}
المحلول
يمكنك استعمال ال org.alfresco.repo.security.authority.AuthorityDAO
getAuthorityNodeRefOrNull
طريقة للحصول على عقدة المجموعة بالاسم.
لسوء الحظ ، لا يوفر Authordao طريقة للحصول على جميع العقدة الجماعية ، ولكن إذا نظرت إلى رمز التنفيذ الخاص به ، فستتمكن بسهولة من نسخ الكود الذي يقوم به ، انها ليست معقدة للغاية.
نصائح أخرى
هناك طريقة جديدة للسلطة ستمنحك قريبًا NODEREF لمجموعة معينة:
/**
* Gets the authority node for the specified name
*
* @param name The authority name
*
* @return the reference to the authority node
*/
public NodeRef getAuthorityNodeRef(String name);
إنه ليس في إصدار تم إصداره من Alfresco ، لذا ستحتاج الآن إلى استدعاء GetAuthorityNodereRefornull من Aulectiondao كما اقترح Hugo.