anchor.diff:                    unchanged ->
                         menelaus_util:reply(Req, 200)
                 end
  -      end, Req, validate_change_password(Req:parse_post())).
  +      end, Req, Req:parse_post(), change_password_validators()).
   
   do_change_password({_, local} = Identity, Password) ->
       menelaus_users:change_password(Identity, Password);
  
positive.code:                                {enforceDigits, lists:member(digits, MustPresent)},
                                 {enforceSpecialChars, lists:member(special, MustPresent)}]}).
  
  validate_post_password_policy(Args) ->
      R0 = menelaus_util:validate_has_params({Args, [], []}),
      R1 = menelaus_util:validate_required(minLength, R0),
      R2 = menelaus_util:validate_integer(minLength, R1),
      R3 = menelaus_util:validate_range(minLength, 0, 100, R2),
      R4 = menelaus_util:validate_boolean(enforceUppercase, R3),
      R5 = menelaus_util:validate_boolean(enforceLowercase, R4),
      R6 = menelaus_util:validate_boolean(enforceDigits, R5),
      R7 = menelaus_util:validate_boolean(enforceSpecialChars, R6),
      menelaus_util:validate_unsupported_params(R7).
  
  must_present_value(JsonField, MustPresentAtom, Args) ->
      case proplists:get_value(JsonField, Args) of
  
negative.code:               end
        end, password, R2).
  
  put_user_validators(Domain) ->
      [menelaus_util:validate_has_params(_),
       menelaus_util:validate_any_value(name, _),
       menelaus_util:validate_required(roles, _),
       menelaus_util:validate_any_value(roles, _)] ++
          case Domain of
              local ->
                  [validate_password(_)];
              external ->
                  []
          end ++
          [menelaus_util:validate_unsupported_params(_)].
  
  handle_put_user_with_identity({_UserId, Domain} = Identity, Req) ->
      menelaus_util:execute_if_validated(
  