anchor.diff:          [HashedPwd, Salt, Iterations] = string:tokens(HashedPwdSaltAndIterations, ","),
           case get_from_cache(UserName) of
           nil ->
  -            make_admin_doc(HashedPwd, Salt, Iterations, [<<"_admin">>]);
  +            make_admin_doc(HashedPwd, Salt, Iterations, []);
           UserProps when is_list(UserProps) ->
               make_admin_doc(HashedPwd, Salt, Iterations, couch_util:get_value(<<"roles">>, UserProps))
       end;
  
positive.code:         [HashedPwd, Salt] = string:tokens(HashedPwdAndSalt, ","),
          case get_from_cache(UserName) of
          nil ->
              make_admin_doc(HashedPwd, Salt, [<<"_admin">>]);
          UserProps when is_list(UserProps) ->
              make_admin_doc(HashedPwd, Salt, couch_util:get_value(<<"roles">>, UserProps))
          end;
  
negative.code:     end,
      validate_user_creds(UserCreds).
  
  make_admin_doc(HashedPwd, Salt, ExtraRoles) ->
      [{<<"roles">>, [<<"_admin">>|ExtraRoles]},
       {<<"salt">>, ?l2b(Salt)},
       {<<"password_scheme">>, <<"simple">>},
       {<<"password_sha">>, ?l2b(HashedPwd)}].
  
  make_admin_doc(DerivedKey, Salt, Iterations, ExtraRoles) ->
      [{<<"roles">>, [<<"_admin">>|ExtraRoles]},
       {<<"salt">>, ?l2b(Salt)},
       {<<"iterations">>, list_to_integer(Iterations)},
       {<<"password_scheme">>, <<"pbkdf2">>},
  