Amoratinos commented on code in PR #2093:
URL: https://github.com/apache/jackrabbit-oak/pull/2093#discussion_r2164266787
##########
oak-jackrabbit-api/src/main/java/org/apache/jackrabbit/api/JackrabbitSession.java:
##########
@@ -277,6 +279,15 @@ default Node getParentOrNull(@NotNull Item item) throws
RepositoryException {
return null;
}
}
+
+ /**
+ * Returns the set of principals associated with this session.
+ * @return the set of principals associated with this session.
+ * @throws RepositoryException in case principal information cannot be
retrieved.
+ * @since 1.81
+ */
+ @NotNull Set<Principal> getPrincipals() throws RepositoryException;
Review Comment:
@kwin what do you think about:
```java
@NotNull
default Set<Principal> getPrincipals() throws RepositoryException {
String userId = getUserID();
if (userId == null) {
throw new UnsupportedRepositoryOperationException("No user ID
associated with this session.");
}
Authorizable authorizable = getUserManager().getAuthorizable(userId);
if (authorizable == null) {
throw new UnsupportedRepositoryOperationException("No
authorizable found for user ID: " + userId);
}
Principal userPrincipal = authorizable.getPrincipal();
Set<Principal> principals = new java.util.HashSet<>();
principals.add(userPrincipal);
PrincipalIterator iterator =
getPrincipalManager().getGroupMembership(userPrincipal);
while (iterator.hasNext()) {
principals.add(iterator.nextPrincipal());
}
return principals;
}
```
I've aligned with @anchela about the implementation, we thought about
returning an empty set instead of throwing an exception but this could be
misleading
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]