chore: append _users role instead of prepending it
diff --git a/src/couch/src/couch_httpd_auth.erl b/src/couch/src/couch_httpd_auth.erl
index a6cffce..eff387a 100644
--- a/src/couch/src/couch_httpd_auth.erl
+++ b/src/couch/src/couch_httpd_auth.erl
@@ -103,7 +103,7 @@
Roles = couch_util:get_value(<<"roles">>, UserProps, []),
case lists:member(<<"_admin">>, Roles) of
true -> Roles;
- _ -> [<<"_users">> | Roles]
+ _ -> Roles ++ [<<"_users">>]
end.
default_authentication_handler(Req) ->
@@ -196,7 +196,7 @@
Roles =
case header_value(Req, XHeaderRoles) of
undefined -> [];
- Else -> [<<"_users">> | re:split(Else, "\\s*,\\s*", [trim, {return, binary}])]
+ Else -> re:split(Else, "\\s*,\\s*", [trim, {return, binary}]) ++ [<<"_users">>]
end,
case
chttpd_util:get_chttpd_auth_config_boolean(
diff --git a/test/elixir/test/proxyauth_test.exs b/test/elixir/test/proxyauth_test.exs
index 9c9638d..0c77abf 100644
--- a/test/elixir/test/proxyauth_test.exs
+++ b/test/elixir/test/proxyauth_test.exs
@@ -70,7 +70,7 @@
)
assert resp2.body["userCtx"]["name"] == "couch@apache.org"
- assert resp2.body["userCtx"]["roles"] == ["_users", "test_role"]
+ assert resp2.body["userCtx"]["roles"] == ["test_role", "_users"]
assert resp2.body["info"]["authenticated"] == "proxy"
assert resp2.body["ok"] == true
@@ -124,7 +124,7 @@
)
assert resp2.body["userCtx"]["name"] == "couch@apache.org"
- assert resp2.body["userCtx"]["roles"] == ["_users", "test_role_1", "test_role_2"]
+ assert resp2.body["userCtx"]["roles"] == ["test_role_1", "test_role_2", "_users"]
assert resp2.body["info"]["authenticated"] == "proxy"
assert resp2.body["ok"] == true