String currentUserEmail = (String) pc.getPrimaryPrincipal();
HashSet<String> userRoles = new HashSet<>();
if (currentUserEmail == null) {
FireLogger.logSevere("No authorization info available for: {0}", FireUtil.getLoggedinUserEmail());
return new SimpleAuthorizationInfo();
}
if (!currentUserEmail.equals(FireUtil.getLoggedinUserEmail())) {
FireLogger.logSevere("WARNING: possible masquerader. Authorizing user is {0} but logged in user is {1}",
currentUserEmail,
FireUtil.getLoggedinUserEmail());
}
FireUser currentUser = userManager.findUser(currentUserEmail);
if (currentUser == null) {
FireLogger.logSevere("FATAL: attempting to find authorization info for non-existen user: {0}", FireUtil.getLoggedinUserEmail());
return new SimpleAuthorizationInfo();
}
userRoles.add(currentUser.getRole().toString());
FireLogger.logInfo("Returning authorization info for user {0}, with role {1}",
currentUser.getEmail(),
currentUser.getRole().toString());
/*
Collection<FireUser> users = pc.byType(FireUser.class);
if (users.isEmpty()) {
FireLogger.logInfo("No authorization info available for: " + FireUtil.getLoggedinUserEmail());
return new SimpleAuthorizationInfo();
}
for (FireUser user : users) {
userRoles.add(user.getRole().toString());
FireLogger.logInfo("Attempting to obtain authorization info for user email: " + user.getEmail());
}
*/
return new SimpleAuthorizationInfo(userRoles);
}