summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2020-08-26 23:45:06 +0300
committerMichael Klishin <michael@clojurewerkz.org>2020-08-26 23:45:06 +0300
commitd689776bd73101d11ee3b738f8af052213d36fab (patch)
tree1a8af06b264bf5910fe9a9db6c8e4917752333e7
parenta1575ddb5eca7875ded0c6c2d05315b029b5129d (diff)
downloadrabbitmq-server-git-d689776bd73101d11ee3b738f8af052213d36fab.tar.gz
set_user_limits/3: return an error if feature flag is disabled
-rw-r--r--src/rabbit_auth_backend_internal.erl21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/rabbit_auth_backend_internal.erl b/src/rabbit_auth_backend_internal.erl
index b0e86df668..cb930a1630 100644
--- a/src/rabbit_auth_backend_internal.erl
+++ b/src/rabbit_auth_backend_internal.erl
@@ -769,15 +769,22 @@ preconfigure_permissions(Username, Map, ActingUser) when is_map(Map) ->
ok.
set_user_limits(Username, Definition, ActingUser) when is_list(Definition); is_binary(Definition) ->
- case rabbit_json:try_decode(rabbit_data_coercion:to_binary(Definition)) of
- {ok, Term} ->
- validate_parameters_and_update_limit(Username, Term, ActingUser);
- {error, Reason} ->
- {error_string, rabbit_misc:format(
- "JSON decoding error. Reason: ~ts", [Reason])}
+ case rabbit_feature_flags:is_enabled(user_limits) of
+ true ->
+ case rabbit_json:try_decode(rabbit_data_coercion:to_binary(Definition)) of
+ {ok, Term} ->
+ validate_parameters_and_update_limit(Username, Term, ActingUser);
+ {error, Reason} ->
+ {error_string, rabbit_misc:format(
+ "JSON decoding error. Reason: ~ts", [Reason])}
+ end;
+ false -> {error_string, "cannot set any user limits: the user_limits feature flag is not enabled"}
end;
set_user_limits(Username, Definition, ActingUser) when is_map(Definition) ->
- validate_parameters_and_update_limit(Username, Definition, ActingUser).
+ case rabbit_feature_flags:is_enabled(user_limits) of
+ true -> validate_parameters_and_update_limit(Username, Definition, ActingUser);
+ false -> {error_string, "cannot set any user limits: the user_limits feature flag is not enabled"}
+ end.
validate_parameters_and_update_limit(Username, Term, ActingUser) ->
case flatten_errors(rabbit_parameter_validation:proplist(