@Override
public AuthorizationResult authorizeJmxOperation(Caller caller, Environment callEnvironment, JmxAction action) {
Set<String> roles = jmxPermissionFactory.getUserRoles(caller, null, FAKE_JMX_ACTION, (TargetResource) null);
if (action.getImpact() == Impact.EXTRA_SENSITIVE) {
return authorize(roles, StandardRole.SUPERUSER, StandardRole.ADMINISTRATOR);
} else if (jmxPermissionFactory.isNonFacadeMBeansSensitive()) {
if (action.getImpact() == Impact.READ_ONLY) {
return authorize(roles, StandardRole.SUPERUSER, StandardRole.ADMINISTRATOR, StandardRole.AUDITOR);
} else {
return authorize(roles, StandardRole.SUPERUSER, StandardRole.ADMINISTRATOR);
}
} else {
if (action.getImpact() == Impact.READ_ONLY) {
return AuthorizationResult.PERMITTED;
} else {
return authorize(roles, StandardRole.SUPERUSER, StandardRole.ADMINISTRATOR, StandardRole.OPERATOR, StandardRole.MAINTAINER);
}
}
}