diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2010-09-07 10:34:14 +0100 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2010-09-07 10:34:14 +0100 |
commit | 5a33028f8982c30f02bd17fdf0735173d661e7f2 (patch) | |
tree | 110cbf71fbb8c6a810cb47de23f97d99cecab9f5 | |
parent | ff53fd5e75111639cfa95102616dffbe31e6c464 (diff) | |
download | rabbitmq-server-5a33028f8982c30f02bd17fdf0735173d661e7f2.tar.gz |
add list_user_vhost_permissions/2
useful in e.g. the management plug-in
-rw-r--r-- | src/rabbit_access_control.erl | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/rabbit_access_control.erl b/src/rabbit_access_control.erl index 1ee6e08c..627478ea 100644 --- a/src/rabbit_access_control.erl +++ b/src/rabbit_access_control.erl @@ -39,7 +39,8 @@ lookup_user/1]). -export([add_vhost/1, delete_vhost/1, list_vhosts/0]). -export([set_permissions/5, set_permissions/6, clear_permissions/2, - list_vhost_permissions/1, list_user_permissions/1]). + list_vhost_permissions/1, list_user_permissions/1, + list_user_vhost_permissions/2]). %%---------------------------------------------------------------------------- @@ -84,13 +85,14 @@ regexp(), regexp(), regexp()) -> 'ok'). -spec(clear_permissions/2 :: (username(), rabbit_types:vhost()) -> 'ok'). -spec(list_vhost_permissions/1 :: - (rabbit_types:vhost()) - -> [{username(), regexp(), regexp(), regexp(), - scope_atom()}]). + (rabbit_types:vhost()) -> [{username(), regexp(), regexp(), regexp(), + scope_atom()}]). -spec(list_user_permissions/1 :: - (username()) - -> [{rabbit_types:vhost(), regexp(), regexp(), regexp(), - scope_atom()}]). + (username()) -> [{rabbit_types:vhost(), regexp(), regexp(), regexp(), + scope_atom()}]). +-spec(list_user_vhost_permissions/2 :: + (username(), rabbit_types:vhost()) -> [{regexp(), regexp(), regexp(), + scope_atom()}]). -endif. @@ -375,6 +377,13 @@ list_user_permissions(Username) -> list_permissions(rabbit_misc:with_user( Username, match_user_vhost(Username, '_')))]. +list_user_vhost_permissions(Username, VHostPath) -> + [{ConfigurePerm, WritePerm, ReadPerm, Scope} || + {_, _, ConfigurePerm, WritePerm, ReadPerm, Scope} <- + list_permissions(rabbit_misc:with_user_and_vhost( + Username, VHostPath, + match_user_vhost(Username, VHostPath)))]. + list_permissions(QueryThunk) -> [{Username, VHostPath, ConfigurePerm, WritePerm, ReadPerm, Scope} || #user_permission{user_vhost = #user_vhost{username = Username, |