CurrentUser: Return Optional from methods that retrieve a property

Returning Optional makes it more explicit that callers must expect that
the return value is absent.

Change-Id: If739844482ac8966dbcdc2285869cfac7ab7e059
Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
Edwin Kempin
2018-02-02 11:42:15 +01:00
parent 79c916c462
commit 8128e3f149
5 changed files with 28 additions and 24 deletions

View File

@@ -37,6 +37,7 @@ import java.io.IOException;
import java.util.Collection;
import java.util.EnumSet;
import java.util.List;
import java.util.Optional;
import java.util.Set;
@Singleton
@@ -159,18 +160,21 @@ public class DefaultPermissionBackend extends PermissionBackend {
}
private Boolean computeAdmin() {
Boolean r = user.get(IS_ADMIN);
if (r == null) {
if (user.isImpersonating()) {
r = false;
} else if (user instanceof PeerDaemonUser) {
r = true;
} else {
r = allow(capabilities().administrateServer);
}
user.put(IS_ADMIN, r);
Optional<Boolean> r = user.get(IS_ADMIN);
if (r.isPresent()) {
return r.get();
}
return r;
boolean isAdmin;
if (user.isImpersonating()) {
isAdmin = false;
} else if (user instanceof PeerDaemonUser) {
isAdmin = true;
} else {
isAdmin = allow(capabilities().administrateServer);
}
user.put(IS_ADMIN, isAdmin);
return isAdmin;
}
private boolean canEmailReviewers() {