Revision 7060
Added by ben leinfelder almost 13 years ago
src/edu/ucsb/nceas/metacat/dataone/D1NodeService.java | ||
---|---|---|
741 | 741 |
if (subjectInfo != null) { |
742 | 742 |
// find subjectInfo for the primary subject |
743 | 743 |
List<Person> personList = subjectInfo.getPersonList(); |
744 |
List<Group> groupList = subjectInfo.getGroupList(); |
|
744 | 745 |
if (personList != null) { |
745 | 746 |
for (Person p : personList) { |
746 | 747 |
// for every person listed (isVerified is transitive) |
... | ... | |
760 | 761 |
subjects.add(equiv); |
761 | 762 |
} |
762 | 763 |
} |
763 |
// add the groups |
|
764 |
List<Subject> groupList = p.getIsMemberOfList();
|
|
765 |
if (groupList != null) {
|
|
766 |
for (Subject g : groupList) {
|
|
764 |
// add the groups they are a member of
|
|
765 |
List<Subject> memberOfList = p.getIsMemberOfList();
|
|
766 |
if (memberOfList != null) {
|
|
767 |
for (Subject g : memberOfList) {
|
|
767 | 768 |
subjects.add(g); |
768 | 769 |
} |
769 | 770 |
} |
771 |
// look at all the Groups to see if this person has membership defined there |
|
772 |
if (groupList != null) { |
|
773 |
for (Group group: groupList) { |
|
774 |
if (group.getHasMemberList() != null) { |
|
775 |
for (Subject member: group.getHasMemberList()) { |
|
776 |
// is the person a member? |
|
777 |
if (member.equals(p.getSubject())) { |
|
778 |
// add this group as a subject to check if it is not already there |
|
779 |
if (!subjects.contains(group.getSubject())) { |
|
780 |
subjects.add(group.getSubject()); |
|
781 |
} |
|
782 |
} |
|
783 |
} |
|
784 |
} |
|
785 |
} |
|
786 |
} |
|
770 | 787 |
break; |
771 | 788 |
} |
772 | 789 |
} |
Also available in: Unified diff
check group membership defined at group level (in addition to membership defined as part of of the Person level)
https://redmine.dataone.org/issues/2429