summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarek Majkowski <marek@rabbitmq.com>2010-09-01 15:19:36 +0100
committerMarek Majkowski <marek@rabbitmq.com>2010-09-01 15:19:36 +0100
commita2dcea39b65139d398f510cafd95764134ed2565 (patch)
tree74f47f7b351a6fd4d06ff260f62e27e405b1a65e /src
parenta1ab943fe0b500a8aa7aa6d7680678eca54fd5da (diff)
parent2cbabd976bda5369416a80cba1ab85fb384e38d4 (diff)
downloadrabbitmq-server-git-a2dcea39b65139d398f510cafd95764134ed2565.tar.gz
bug23185 merged into default
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_access_control.erl25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/rabbit_access_control.erl b/src/rabbit_access_control.erl
index 8d00f59124..9cfe1ca8df 100644
--- a/src/rabbit_access_control.erl
+++ b/src/rabbit_access_control.erl
@@ -171,10 +171,6 @@ check_resource_access(Username,
check_resource_access(Username,
R#resource{name = <<"amq.default">>},
Permission);
-check_resource_access(_Username,
- #resource{name = <<"amq.gen",_/binary>>},
- #permission{scope = client}) ->
- ok;
check_resource_access(Username,
R = #resource{virtual_host = VHostPath, name = Name},
Permission) ->
@@ -184,14 +180,19 @@ check_resource_access(Username,
[] ->
false;
[#user_permission{permission = P}] ->
- PermRegexp = case element(permission_index(Permission), P) of
- %% <<"^$">> breaks Emacs' erlang mode
- <<"">> -> <<$^, $$>>;
- RE -> RE
- end,
- case re:run(Name, PermRegexp, [{capture, none}]) of
- match -> true;
- nomatch -> false
+ case {Name, P} of
+ {<<"amq.gen",_/binary>>, #permission{scope = client}} ->
+ true;
+ _ ->
+ PermRegexp = case element(permission_index(Permission), P) of
+ %% <<"^$">> breaks Emacs' erlang mode
+ <<"">> -> <<$^, $$>>;
+ RE -> RE
+ end,
+ case re:run(Name, PermRegexp, [{capture, none}]) of
+ match -> true;
+ nomatch -> false
+ end
end
end,
if Res -> ok;