summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandru Scvortov <alexandru@rabbitmq.com>2010-07-13 15:51:41 +0100
committerAlexandru Scvortov <alexandru@rabbitmq.com>2010-07-13 15:51:41 +0100
commitb37863e2838d9e237daa247ae13f1bd46fe8f749 (patch)
tree0bc7bea16a72f15d4d9a3f3ea0d2c7b924f6fcc6
parent4a7811105c3c47658e57061e3661911b883891dc (diff)
downloadrabbitmq-server-git-b37863e2838d9e237daa247ae13f1bd46fe8f749.tar.gz
permission tags are now displayed
-rw-r--r--include/rabbit.hrl2
-rw-r--r--src/rabbit_access_control.erl23
-rw-r--r--src/rabbit_control.erl2
3 files changed, 15 insertions, 12 deletions
diff --git a/include/rabbit.hrl b/include/rabbit.hrl
index e888b43030..653ad2fd73 100644
--- a/include/rabbit.hrl
+++ b/include/rabbit.hrl
@@ -30,7 +30,7 @@
%%
-record(user, {username, password}).
--record(permission, {check_all, configure, write, read}).
+-record(permission, {check, configure, write, read}).
-record(user_vhost, {username, virtual_host}).
-record(user_permission, {user_vhost, permission}).
diff --git a/src/rabbit_access_control.erl b/src/rabbit_access_control.erl
index d14aaedf48..86acbe43e1 100644
--- a/src/rabbit_access_control.erl
+++ b/src/rabbit_access_control.erl
@@ -149,7 +149,7 @@ check_vhost_access(#user{username = Username}, VHostPath) ->
[VHostPath, Username])
end.
-permission_index(check_all) -> #permission.check_all;
+permission_index(check) -> #permission.check;
permission_index(configure) -> #permission.configure;
permission_index(write) -> #permission.write;
permission_index(read) -> #permission.read.
@@ -162,7 +162,7 @@ check_resource_access(Username,
Permission);
check_resource_access(_Username,
#resource{name = <<"amq.gen",_/binary>>},
- #permission{check_all = 'false'}) ->
+ #permission{check = 'check_user_named'}) ->
ok;
check_resource_access(Username,
R = #resource{virtual_host = VHostPath, name = Name},
@@ -307,7 +307,7 @@ validate_regexp(RegexpBin) ->
{error, Reason} -> throw({error, {invalid_regexp, Regexp, Reason}})
end.
-set_permissions_internal(Username, VHostPath, CheckAll, ConfigurePerm,
+set_permissions_internal(Username, VHostPath, Check, ConfigurePerm,
WritePerm, ReadPerm) ->
lists:map(fun validate_regexp/1, [ConfigurePerm, WritePerm, ReadPerm]),
rabbit_misc:execute_mnesia_transaction(
@@ -319,7 +319,7 @@ set_permissions_internal(Username, VHostPath, CheckAll, ConfigurePerm,
username = Username,
virtual_host = VHostPath},
permission = #permission{
- check_all = CheckAll,
+ check = Check,
configure = ConfigurePerm,
write = WritePerm,
read = ReadPerm}},
@@ -327,11 +327,11 @@ set_permissions_internal(Username, VHostPath, CheckAll, ConfigurePerm,
end)).
set_permissions(Username, VHostPath, ConfigurePerm, WritePerm, ReadPerm) ->
- set_permissions_internal(Username, VHostPath, 'false', ConfigurePerm,
+ set_permissions_internal(Username, VHostPath, 'check_user_named', ConfigurePerm,
WritePerm, ReadPerm).
set_permissions_all(Username, VHostPath, ConfigurePerm, WritePerm, ReadPerm) ->
- set_permissions_internal(Username, VHostPath, 'true', ConfigurePerm,
+ set_permissions_internal(Username, VHostPath, 'check_all_resources', ConfigurePerm,
WritePerm, ReadPerm).
clear_permissions(Username, VHostPath) ->
@@ -345,22 +345,23 @@ clear_permissions(Username, VHostPath) ->
end)).
list_vhost_permissions(VHostPath) ->
- [{Username, ConfigurePerm, WritePerm, ReadPerm} ||
- {Username, _, ConfigurePerm, WritePerm, ReadPerm} <-
+ [{Username, ConfigurePerm, WritePerm, ReadPerm, Check} ||
+ {Username, _, ConfigurePerm, WritePerm, ReadPerm, Check} <-
list_permissions(rabbit_misc:with_vhost(
VHostPath, match_user_vhost('_', VHostPath)))].
list_user_permissions(Username) ->
- [{VHostPath, ConfigurePerm, WritePerm, ReadPerm} ||
- {_, VHostPath, ConfigurePerm, WritePerm, ReadPerm} <-
+ [{VHostPath, ConfigurePerm, WritePerm, ReadPerm, Check} ||
+ {_, VHostPath, ConfigurePerm, WritePerm, ReadPerm, Check} <-
list_permissions(rabbit_misc:with_user(
Username, match_user_vhost(Username, '_')))].
list_permissions(QueryThunk) ->
- [{Username, VHostPath, ConfigurePerm, WritePerm, ReadPerm} ||
+ [{Username, VHostPath, ConfigurePerm, WritePerm, ReadPerm, Check} ||
#user_permission{user_vhost = #user_vhost{username = Username,
virtual_host = VHostPath},
permission = #permission{
+ check = Check,
configure = ConfigurePerm,
write = WritePerm,
read = ReadPerm}} <-
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl
index 8906832998..2f13a0a6d4 100644
--- a/src/rabbit_control.erl
+++ b/src/rabbit_control.erl
@@ -363,6 +363,8 @@ rpc_call(Node, Mod, Fun, Args) ->
%% characters. We don't escape characters above 127, since they may
%% form part of UTF-8 strings.
+escape(Atom) when is_atom(Atom) ->
+ escape(atom_to_list(Atom));
escape(Bin) when is_binary(Bin) ->
escape(binary_to_list(Bin));
escape(L) when is_list(L) ->