|
15 | 15 | import org.apache.commons.lang3.builder.ToStringStyle;
|
16 | 16 | import org.apache.jackrabbit.api.security.user.Authorizable;
|
17 | 17 | import org.apache.jackrabbit.api.security.user.Group;
|
| 18 | +import org.apache.jackrabbit.api.security.user.User; |
18 | 19 |
|
19 | 20 | public class AclGroup extends AclAuthorizable {
|
20 | 21 |
|
@@ -102,15 +103,35 @@ public AclResult removeAllMembers() {
|
102 | 103 | public Stream<AclAuthorizable> getMembers() {
|
103 | 104 | try {
|
104 | 105 | return StreamUtils.asStream(group.getMembers())
|
105 |
| - .map(member -> { |
106 |
| - return context.determineAuthorizable(member); |
107 |
| - }) |
108 |
| - .filter(authorizable -> authorizable != null); |
| 106 | + .map(m -> context.determineAuthorizable(m)) |
| 107 | + .filter(a -> a != null); |
109 | 108 | } catch (RepositoryException e) {
|
110 | 109 | throw new AclException(String.format("Failed to get members of group '%s'", getId()), e);
|
111 | 110 | }
|
112 | 111 | }
|
113 | 112 |
|
| 113 | + public Stream<AclGroup> getGroups() { |
| 114 | + try { |
| 115 | + return StreamUtils.asStream(group.getMembers()) |
| 116 | + .filter(g -> g.isGroup()) |
| 117 | + .map(m -> context.determineGroup((Group) m)) |
| 118 | + .filter(g -> g != null); |
| 119 | + } catch (RepositoryException e) { |
| 120 | + throw new AclException(String.format("Failed to get all groups of group '%s'", getId()), e); |
| 121 | + } |
| 122 | + } |
| 123 | + |
| 124 | + public Stream<AclUser> getUsers() { |
| 125 | + try { |
| 126 | + return StreamUtils.asStream(group.getMembers()) |
| 127 | + .filter(g -> !g.isGroup()) |
| 128 | + .map(m -> context.determineUser((User) m)) |
| 129 | + .filter(u -> u != null); |
| 130 | + } catch (RepositoryException e) { |
| 131 | + throw new AclException(String.format("Failed to get all users of group '%s'", getId()), e); |
| 132 | + } |
| 133 | + } |
| 134 | + |
114 | 135 | @Override
|
115 | 136 | public AclResult purge() {
|
116 | 137 | AclResult result = AclResult.of(removeAllMembers(), removeFromAllGroups(), clear("/"));
|
|
0 commit comments