363 log.debug(
"Old members: {}", oldMembers);
364 log.debug(
"New members: {}", newMembers);
366 String groupDn = this.
group.getDn();
375 Arrays.sort(oldMemberDns);
376 Arrays.sort(newMemberDns);
378 boolean[] retainOldMembers =
new boolean[oldMemberDns.length];
379 Arrays.fill(retainOldMembers,
false);
381 List<String> addedMembers =
new ArrayList<String>();
382 List<String> removedMembers =
new ArrayList<String>();
383 List<String> existingMembers =
new ArrayList<String>();
386 for (String value : newMemberDns) {
387 int idx = Arrays.binarySearch(oldMemberDns, value);
390 retainOldMembers[idx] =
true;
393 addedMembers.add(value);
398 for (
int i = 0; i < oldMemberDns.length; i++) {
399 if (retainOldMembers[i]) {
400 existingMembers.add(oldMemberDns[i]);
402 removedMembers.add(oldMemberDns[i]);
406 for (String dn : addedMembers) {
408 log.debug(
"Adding group {} to person {} memberOf", groupDn, person.getDisplayName());
411 GluuBoolean slaManager =
isSLAManager(organizationGroups, person);
412 person.setSLAManager(slaManager);
415 List<String> personMemberOf =
new ArrayList<String>(person.getMemberOf());
416 personMemberOf.add(groupDn);
417 person.setMemberOf(personMemberOf);
422 for (String dn : removedMembers) {
424 log.debug(
"Removing group {} from person {} memberOf", groupDn, person.getDisplayName());
427 GluuBoolean slaManager =
isSLAManager(organizationGroups, person);
428 person.setSLAManager(slaManager);
431 List<String> personMemberOf =
new ArrayList<String>(person.getMemberOf());
432 personMemberOf.remove(groupDn);
433 person.setMemberOf(personMemberOf);
440 for (String dn : existingMembers) {
442 log.debug(
"Updating group {} to person {} memberOf", groupDn, person.getDisplayName());
444 GluuBoolean slaManager =
isSLAManager(organizationGroups, person);
445 if (slaManager.equals(person.getSLAManager())) {
449 person.setSLAManager(slaManager);
String getManagerGroup()
Definition: GluuOrganization.java:209
String [] convertToDNsArray(List< DisplayNameEntry > members)
Definition: UpdateGroupAction.java:459
OrganizationService organizationService
Definition: UpdateGroupAction.java:84
Logger log
Definition: UpdateGroupAction.java:60
abstract void updatePerson(GluuCustomPerson person)
abstract GluuCustomPerson getPersonByDn(String dn)
AppConfiguration appConfiguration
Definition: UpdateGroupAction.java:102
GluuOrganization getOrganization()
Definition: OrganizationService.java:84
IPersonService personService
Definition: UpdateGroupAction.java:99
GluuGroup group
Definition: UpdateGroupAction.java:68
GluuBoolean isSLAManager(String[] organizationGroups, GluuCustomPerson person)
Definition: UpdateGroupAction.java:455