Split rabbit_access_control up.

This commit is contained in:
Simon MacMullen 2010-12-21 13:00:38 +00:00
parent a32f1193ea
commit b8cc1a3c55
11 changed files with 29 additions and 29 deletions

View File

@ -241,7 +241,7 @@ handle_call({get_channel, Name}, _From, State = #state{tables = Tables}) ->
handle_call({get_overview, Username}, _From, State = #state{tables = Tables}) -> handle_call({get_overview, Username}, _From, State = #state{tables = Tables}) ->
VHosts = case Username of VHosts = case Username of
all -> rabbit_access_control:list_vhosts(); all -> rabbit_vhost:list();
_ -> rabbit_mgmt_util:vhosts(Username) _ -> rabbit_mgmt_util:vhosts(Username)
end, end,
Qs0 = [rabbit_mgmt_format:queue(Q) || V <- VHosts, Qs0 = [rabbit_mgmt_format:queue(Q) || V <- VHosts,

View File

@ -85,7 +85,7 @@ is_authorized(ReqData, Context, Fun) ->
vhost(ReqData) -> vhost(ReqData) ->
case id(vhost, ReqData) of case id(vhost, ReqData) of
none -> none; none -> none;
VHost -> case rabbit_access_control:vhost_exists(VHost) of VHost -> case rabbit_vhost:exists(VHost) of
true -> VHost; true -> VHost;
false -> not_found false -> not_found
end end
@ -275,8 +275,7 @@ amqp_request(VHost, ReqData, Context, Method) ->
all_or_one_vhost(ReqData, Fun) -> all_or_one_vhost(ReqData, Fun) ->
case rabbit_mgmt_util:vhost(ReqData) of case rabbit_mgmt_util:vhost(ReqData) of
none -> lists:append( none -> lists:append([Fun(V) || V <- rabbit_vhost:list()]);
[Fun(V) || V <- rabbit_access_control:list_vhosts()]);
not_found -> vhost_not_found; not_found -> vhost_not_found;
VHost -> Fun(VHost) VHost -> Fun(VHost)
end. end.

View File

@ -186,7 +186,7 @@ add_vhost(VHost) ->
rabbit_mgmt_wm_vhost:put_vhost(VHostName). rabbit_mgmt_wm_vhost:put_vhost(VHostName).
add_permission(Permission) -> add_permission(Permission) ->
rabbit_access_control:set_permissions(pget(user, Permission), rabbit_auth_backend_internal:set_permissions(pget(user, Permission),
pget(vhost, Permission), pget(vhost, Permission),
pget(configure, Permission), pget(configure, Permission),
pget(write, Permission), pget(write, Permission),

View File

@ -58,7 +58,7 @@ accept_content(ReqData, Context) ->
rabbit_mgmt_util:with_decode( rabbit_mgmt_util:with_decode(
[configure, write, read], ReqData, Context, [configure, write, read], ReqData, Context,
fun([Conf, Write, Read]) -> fun([Conf, Write, Read]) ->
rabbit_access_control:set_permissions( rabbit_auth_backend_internal:set_permissions(
User, VHost, Conf, Write, Read), User, VHost, Conf, Write, Read),
{true, ReqData, Context} {true, ReqData, Context}
end) end)
@ -67,7 +67,7 @@ accept_content(ReqData, Context) ->
delete_resource(ReqData, Context) -> delete_resource(ReqData, Context) ->
User = rabbit_mgmt_util:id(user, ReqData), User = rabbit_mgmt_util:id(user, ReqData),
VHost = rabbit_mgmt_util:id(vhost, ReqData), VHost = rabbit_mgmt_util:id(vhost, ReqData),
rabbit_access_control:clear_permissions(User, VHost), rabbit_auth_backend_internal:clear_permissions(User, VHost),
{true, ReqData, Context}. {true, ReqData, Context}.
is_authorized(ReqData, Context) -> is_authorized(ReqData, Context) ->
@ -77,13 +77,14 @@ is_authorized(ReqData, Context) ->
perms(ReqData) -> perms(ReqData) ->
User = rabbit_mgmt_util:id(user, ReqData), User = rabbit_mgmt_util:id(user, ReqData),
case rabbit_access_control:lookup_user(User) of case rabbit_auth_backend_internal:lookup_user(User) of
{ok, _} -> {ok, _} ->
case rabbit_mgmt_util:vhost(ReqData) of case rabbit_mgmt_util:vhost(ReqData) of
not_found -> not_found ->
not_found; not_found;
VHost -> VHost ->
Perms = rabbit_access_control:list_user_vhost_permissions( Perms =
rabbit_auth_backend_internal:list_user_vhost_permissions(
User, VHost), User, VHost),
case Perms of case Perms of
[{Configure, Write, Read}] -> [{Configure, Write, Read}] ->

View File

@ -39,4 +39,4 @@ is_authorized(ReqData, Context) ->
permissions() -> permissions() ->
[rabbit_mgmt_format:permissions(P) || [rabbit_mgmt_format:permissions(P) ||
P <- rabbit_access_control:list_permissions()]. P <- rabbit_auth_backend_internal:list_permissions()].

View File

@ -29,7 +29,7 @@ content_types_provided(ReqData, Context) ->
to_json(ReqData, Context) -> to_json(ReqData, Context) ->
User = rabbit_mgmt_util:id(user, ReqData), User = rabbit_mgmt_util:id(user, ReqData),
Perms = rabbit_access_control:list_user_permissions(User), Perms = rabbit_auth_backend_internal:list_user_permissions(User),
rabbit_mgmt_util:reply_list( rabbit_mgmt_util:reply_list(
[rabbit_mgmt_format:permissions({User, VHost, [rabbit_mgmt_format:permissions({User, VHost,
Conf, Write, Read}) || Conf, Write, Read}) ||

View File

@ -29,7 +29,7 @@ content_types_provided(ReqData, Context) ->
to_json(ReqData, Context) -> to_json(ReqData, Context) ->
VHost = rabbit_mgmt_util:id(vhost, ReqData), VHost = rabbit_mgmt_util:id(vhost, ReqData),
Perms = rabbit_access_control:list_vhost_permissions(VHost), Perms = rabbit_auth_backend_internal:list_vhost_permissions(VHost),
rabbit_mgmt_util:reply_list( rabbit_mgmt_util:reply_list(
[rabbit_mgmt_format:permissions({User, VHost, [rabbit_mgmt_format:permissions({User, VHost,
Conf, Write, Read}) || Conf, Write, Read}) ||

View File

@ -57,7 +57,7 @@ accept_content(ReqData, Context) ->
delete_resource(ReqData, Context) -> delete_resource(ReqData, Context) ->
User = rabbit_mgmt_util:id(user, ReqData), User = rabbit_mgmt_util:id(user, ReqData),
rabbit_access_control:delete_user(User), rabbit_auth_backend_internal:delete_user(User),
{true, ReqData, Context}. {true, ReqData, Context}.
is_authorized(ReqData, Context) -> is_authorized(ReqData, Context) ->
@ -66,35 +66,35 @@ is_authorized(ReqData, Context) ->
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
user(ReqData) -> user(ReqData) ->
rabbit_access_control:lookup_user(rabbit_mgmt_util:id(user, ReqData)). rabbit_auth_backend_internal:lookup_user(rabbit_mgmt_util:id(user, ReqData)).
put_user(User) -> put_user(User) ->
case {proplists:is_defined(password, User), case {proplists:is_defined(password, User),
proplists:is_defined(password_hash, User)} of proplists:is_defined(password_hash, User)} of
{true, _} -> {true, _} ->
Pass = proplists:get_value(password, User), Pass = proplists:get_value(password, User),
put_user(User, Pass, fun rabbit_access_control:change_password/2); put_user(User, Pass, fun rabbit_auth_backend_internal:change_password/2);
{_, true} -> {_, true} ->
Hash = base64:decode(proplists:get_value(password_hash, User)), Hash = base64:decode(proplists:get_value(password_hash, User)),
put_user(User, Hash, put_user(User, Hash,
fun rabbit_access_control:change_password_hash/2); fun rabbit_auth_backend_internal:change_password_hash/2);
_ -> _ ->
put_user(User, <<>>, put_user(User, <<>>,
fun rabbit_access_control:change_password_hash/2) fun rabbit_auth_backend_internal:change_password_hash/2)
end. end.
put_user(User, PWArg, PWFun) -> put_user(User, PWArg, PWFun) ->
Username = proplists:get_value(name, User), Username = proplists:get_value(name, User),
IsAdmin = proplists:get_value(administrator, User), IsAdmin = proplists:get_value(administrator, User),
case rabbit_access_control:lookup_user(Username) of case rabbit_auth_backend_internal:lookup_user(Username) of
{error, not_found} -> {error, not_found} ->
rabbit_access_control:add_user( rabbit_auth_backend_internal:add_user(
Username, rabbit_guid:binstring_guid("tmp_")); Username, rabbit_guid:binstring_guid("tmp_"));
_ -> _ ->
ok ok
end, end,
PWFun(Username, PWArg), PWFun(Username, PWArg),
case rabbit_mgmt_util:parse_bool(IsAdmin) of case rabbit_mgmt_util:parse_bool(IsAdmin) of
true -> rabbit_access_control:set_admin(Username); true -> rabbit_auth_backend_internal:set_admin(Username);
false -> rabbit_access_control:clear_admin(Username) false -> rabbit_auth_backend_internal:clear_admin(Username)
end. end.

View File

@ -38,6 +38,6 @@ is_authorized(ReqData, Context) ->
users() -> users() ->
[begin [begin
{ok, User} = rabbit_access_control:lookup_user(U), {ok, User} = rabbit_auth_backend_internal:lookup_user(U),
rabbit_mgmt_format:internal_user(User) rabbit_mgmt_format:internal_user(User)
end || {U, _} <- rabbit_access_control:list_users()]. end || {U, _} <- rabbit_auth_backend_internal:list_users()].

View File

@ -36,7 +36,7 @@ allowed_methods(ReqData, Context) ->
{['HEAD', 'GET', 'PUT', 'DELETE'], ReqData, Context}. {['HEAD', 'GET', 'PUT', 'DELETE'], ReqData, Context}.
resource_exists(ReqData, Context) -> resource_exists(ReqData, Context) ->
{rabbit_access_control:vhost_exists(id(ReqData)), ReqData, Context}. {rabbit_vhost:exists(id(ReqData)), ReqData, Context}.
to_json(ReqData, Context) -> to_json(ReqData, Context) ->
VHost = [{name, id(ReqData)}], VHost = [{name, id(ReqData)}],
@ -48,7 +48,7 @@ accept_content(ReqData, Context) ->
delete_resource(ReqData, Context) -> delete_resource(ReqData, Context) ->
VHost = id(ReqData), VHost = id(ReqData),
rabbit_access_control:delete_vhost(VHost), rabbit_vhost:delete(VHost),
{true, ReqData, Context}. {true, ReqData, Context}.
is_authorized(ReqData, Context) -> is_authorized(ReqData, Context) ->
@ -60,7 +60,7 @@ id(ReqData) ->
rabbit_mgmt_util:id(vhost, ReqData). rabbit_mgmt_util:id(vhost, ReqData).
put_vhost(VHost) -> put_vhost(VHost) ->
case rabbit_access_control:vhost_exists(VHost) of case rabbit_vhost:exists(VHost) of
true -> ok; true -> ok;
false -> rabbit_access_control:add_vhost(VHost) false -> rabbit_vhost:add(VHost)
end. end.

View File

@ -38,7 +38,7 @@ is_authorized(ReqData, Context) ->
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
vhosts() -> vhosts() ->
format(rabbit_access_control:list_vhosts()). format(rabbit_vhost:list()).
format(Vs) -> format(Vs) ->
[[{name, N}] || N <- Vs]. [[{name, N}] || N <- Vs].