diff options
| author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2010-07-13 15:51:41 +0100 |
|---|---|---|
| committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2010-07-13 15:51:41 +0100 |
| commit | b37863e2838d9e237daa247ae13f1bd46fe8f749 (patch) | |
| tree | 0bc7bea16a72f15d4d9a3f3ea0d2c7b924f6fcc6 | |
| parent | 4a7811105c3c47658e57061e3661911b883891dc (diff) | |
| download | rabbitmq-server-git-b37863e2838d9e237daa247ae13f1bd46fe8f749.tar.gz | |
permission tags are now displayed
| -rw-r--r-- | include/rabbit.hrl | 2 | ||||
| -rw-r--r-- | src/rabbit_access_control.erl | 23 | ||||
| -rw-r--r-- | src/rabbit_control.erl | 2 |
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) -> |
