protected void validateAuthorizationToManageServiceAutoStartConfiguration(Cluster cluster,
                                                                            String configType,
                                                                            Map<String, String[]> propertyChanges)
      throws AuthorizationException {
    // If the authenticated user is authorized to manage the cluster-wide configuration for a
    // service's ability to be set to auto-start, there is nothing to check.
    if (!AuthorizationHelper.isAuthorized(ResourceType.CLUSTER, cluster.getResourceId(),
        RoleAuthorization.CLUSTER_MANAGE_AUTO_START)) {

      if ("cluster-env".equals(configType) && propertyChanges.containsKey("recovery_enabled")) {
        throw new AuthorizationException("The authenticated user is not authorized to set service user and groups");
      }
    }
  }
Validates that the authenticated user can manage the cluster-wide configuration for a service's
ability to be set to auto-start.
<p/>
If the user is authorized, than this method exits quickly.
If the user is not authorized, then this method verifies that the configuration property
<code>cluster-env/recovery_enabled</code> is not changed. If it was, an
{@link AuthorizationException} is thrown.

@param cluster         the relevant cluster
@param configType      the changed configuration type
@param propertyChanges a map of the property changes for the relevant configuration type
@throws AuthorizationException if the user is not authorized to perform this operation
ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java