Disable administrative permissions during X-Gerrit-RunAs
When executing an action on behalf of an administrator, disable the administrateServer capability during the request. This may limit the damage a compromised role account could cause by avoiding any permissions that are not explicitly granted. Change-Id: I263e1d8e1a645617842f11b7712f79f5c009c6ca
This commit is contained in:
@@ -65,8 +65,12 @@ public class CapabilityControl {
|
||||
/** @return true if the user can administer this server. */
|
||||
public boolean canAdministrateServer() {
|
||||
if (canAdministrateServer == null) {
|
||||
canAdministrateServer = user instanceof PeerDaemonUser
|
||||
|| matchAny(capabilities.administrateServer, ALLOWED_RULE);
|
||||
if (user.getRealUser() != user) {
|
||||
canAdministrateServer = false;
|
||||
} else {
|
||||
canAdministrateServer = user instanceof PeerDaemonUser
|
||||
|| matchAny(capabilities.administrateServer, ALLOWED_RULE);
|
||||
}
|
||||
}
|
||||
return canAdministrateServer;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user