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 | b53513a4725d1a5fe2b1b7a47eb5f2d636744586 (patch) | |
tree | 74f47f7b351a6fd4d06ff260f62e27e405b1a65e | |
parent | 6a8b91080758e44622ae2ae72a1ada672ed7d352 (diff) | |
parent | 89b38c68bbd4fef8ea2ac08ce4b2d95e1e9a0264 (diff) | |
download | rabbitmq-server-b53513a4725d1a5fe2b1b7a47eb5f2d636744586.tar.gz |
bug23185 merged into default
-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 8d00f591..9cfe1ca8 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; |