diff options
| author | Marek Majkowski <marek@rabbitmq.com> | 2010-09-01 15:19:36 +0100 |
|---|---|---|
| committer | Marek Majkowski <marek@rabbitmq.com> | 2010-09-01 15:19:36 +0100 |
| commit | a2dcea39b65139d398f510cafd95764134ed2565 (patch) | |
| tree | 74f47f7b351a6fd4d06ff260f62e27e405b1a65e /src | |
| parent | a1ab943fe0b500a8aa7aa6d7680678eca54fd5da (diff) | |
| parent | 2cbabd976bda5369416a80cba1ab85fb384e38d4 (diff) | |
| download | rabbitmq-server-git-a2dcea39b65139d398f510cafd95764134ed2565.tar.gz | |
bug23185 merged into default
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_access_control.erl | 25 |
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; |
