Skip to content

Commit

Permalink
Bug 473404 - UserSubInterfaceImpl does not correctly resolve roles
Browse files Browse the repository at this point in the history
  • Loading branch information
edgarmueller authored and jfaltermeier committed Jul 24, 2015
1 parent e86ca19 commit d5452f9
Showing 1 changed file with 10 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,18 +56,20 @@ public ACUser resolveUser(SessionId sessionId, ACOrgUnitId id) throws ESExceptio
sanityCheckObjects(sessionId);
synchronized (getMonitor()) {
final AccessControl accessControl = getAccessControl();
accessControl.getAuthorizationService().checkServerAdminAccess(sessionId.toAPI());
final ESUser rawUser = accessControl.getSessions().getRawUser(sessionId.toAPI());
final ESUser resolvedUser = accessControl.getOrgUnitResolverServive().resolveUser(id.toAPI());

final ACUser requestingUser = (ACUser) ESUserImpl.class.cast(rawUser).toInternalAPI();
final ACUser acUser = (ACUser) ESUserImpl.class.cast(resolvedUser).toInternalAPI();

if (requestingUser.getId().equals(acUser.getId())) {
return acUser;
final ESUser resolvedUser;
if (id == null) {
resolvedUser = accessControl.getOrgUnitResolverServive().resolveUser(
// TODO casts
ESUserImpl.class.cast(rawUser).toInternalAPI().getId().toAPI());
} else {
resolvedUser = accessControl.getOrgUnitResolverServive().resolveUser(id.toAPI());
}

accessControl.getAuthorizationService().checkServerAdminAccess(sessionId.toAPI());
return acUser;
final ESUser user = accessControl.getOrgUnitResolverServive().copyAndResolveUser(resolvedUser);
return (ACUser) ESUserImpl.class.cast(user).toInternalAPI();
}
}
}

0 comments on commit d5452f9

Please sign in to comment.