summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandru Scvortov <alexandru@rabbitmq.com>2010-07-13 10:06:00 +0100
committerAlexandru Scvortov <alexandru@rabbitmq.com>2010-07-13 10:06:00 +0100
commitdfbef9cffd8c0bf04c5c1276214f78f0e43cac6f (patch)
tree606f5379ec3b5465826ef78cc68d810712efec3a
parent06fc6e65a367cd93b89de13588e5768eb0f8ddaf (diff)
downloadrabbitmq-server-dfbef9cffd8c0bf04c5c1276214f78f0e43cac6f.tar.gz
"" is changed to "^$" when checking permissions
% rabbitmqctl set_permissions guest "" "" "" Setting permissions for user "guest" in vhost "/" ... ...done. % rabbitmqctl list_permissions Listing permissions in vhost "/" ... guest "" "" "" ...done.
-rw-r--r--src/rabbit_access_control.erl18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/rabbit_access_control.erl b/src/rabbit_access_control.erl
index 5b330e13..1265b078 100644
--- a/src/rabbit_access_control.erl
+++ b/src/rabbit_access_control.erl
@@ -172,9 +172,13 @@ check_resource_access(Username,
[] ->
false;
[#user_permission{permission = P}] ->
+ PermRegexp = case element(permission_index(Permission), P) of
+ <<"">> -> <<$^, $$>>;
+ RE -> RE
+ end,
case regexp:match(
binary_to_list(Name),
- binary_to_list(element(permission_index(Permission), P))) of
+ binary_to_list(PermRegexp)) of
{match, _, _} -> true;
nomatch -> false
end
@@ -307,11 +311,7 @@ validate_regexp(RegexpBin) ->
end.
set_permissions(Username, VHostPath, ConfigurePerm, WritePerm, ReadPerm) ->
- [ConfigurePerm1, WritePerm1, ReadPerm1] =
- lists:map(fun(<<"">>) -> <<$^, $$>>;
- (Regexp) -> ok = validate_regexp(Regexp),
- Regexp
- end, [ConfigurePerm, WritePerm, ReadPerm]),
+ lists:map(fun validate_regexp/1, [ConfigurePerm, WritePerm, ReadPerm]),
rabbit_misc:execute_mnesia_transaction(
rabbit_misc:with_user_and_vhost(
Username, VHostPath,
@@ -321,9 +321,9 @@ set_permissions(Username, VHostPath, ConfigurePerm, WritePerm, ReadPerm) ->
username = Username,
virtual_host = VHostPath},
permission = #permission{
- configure = ConfigurePerm1,
- write = WritePerm1,
- read = ReadPerm1}},
+ configure = ConfigurePerm,
+ write = WritePerm,
+ read = ReadPerm}},
write)
end)).