diff options
author | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-03-05 18:46:38 +0000 |
---|---|---|
committer | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-03-05 18:46:38 +0000 |
commit | 3501e65c8f34b5ef779cc92572b320c3887dcc0e (patch) | |
tree | 6611c1860a50f32b7e3b8204f0d09cb165883869 /src/rabbit_auth_backend.erl | |
parent | e7299736793fb9f5b0fc8e78a435b3d47f628cec (diff) | |
download | rabbitmq-server-3501e65c8f34b5ef779cc92572b320c3887dcc0e.tar.gz |
Added -callbacks for rabbit_auth_backend.
Diffstat (limited to 'src/rabbit_auth_backend.erl')
-rw-r--r-- | src/rabbit_auth_backend.erl | 83 |
1 files changed, 49 insertions, 34 deletions
diff --git a/src/rabbit_auth_backend.erl b/src/rabbit_auth_backend.erl index e0e252b8..e89951e7 100644 --- a/src/rabbit_auth_backend.erl +++ b/src/rabbit_auth_backend.erl @@ -16,42 +16,57 @@ -module(rabbit_auth_backend). +-ifdef(use_specs). + +%% A description proplist as with auth mechanisms, +%% exchanges. Currently unused. +-callback description() -> [proplist:property()]. + +%% Check a user can log in, given a username and a proplist of +%% authentication information (e.g. [{password, Password}]). +%% +%% Possible responses: +%% {ok, User} +%% Authentication succeeded, and here's the user record. +%% {error, Error} +%% Something went wrong. Log and die. +%% {refused, Msg, Args} +%% Client failed authentication. Log and die. +-callback check_user_login(rabbit_types:username(), [term()]) -> + {'ok', rabbit_types:user()} | + {'refused', string(), [any()]} | + {'error', any()}. + +%% Given #user and vhost, can a user log in to a vhost? +%% Possible responses: +%% true +%% false +%% {error, Error} +%% Something went wrong. Log and die. +-callback check_vhost_access(rabbit_types:user(), rabbit_types:vhost()) -> + boolean() | {'error', any()}. + + +%% Given #user, resource and permission, can a user access a resource? +%% +%% Possible responses: +%% true +%% false +%% {error, Error} +%% Something went wrong. Log and die. +-callback check_resource_access(rabbit_types:user(), + rabbit_types:r(atom()), + rabbit_access_control:permission_atom()) -> + boolean() | {'error', any()}. + +-else. + -export([behaviour_info/1]). behaviour_info(callbacks) -> - [ - %% A description proplist as with auth mechanisms, - %% exchanges. Currently unused. - {description, 0}, - - %% Check a user can log in, given a username and a proplist of - %% authentication information (e.g. [{password, Password}]). - %% - %% Possible responses: - %% {ok, User} - %% Authentication succeeded, and here's the user record. - %% {error, Error} - %% Something went wrong. Log and die. - %% {refused, Msg, Args} - %% Client failed authentication. Log and die. - {check_user_login, 2}, - - %% Given #user and vhost, can a user log in to a vhost? - %% Possible responses: - %% true - %% false - %% {error, Error} - %% Something went wrong. Log and die. - {check_vhost_access, 2}, - - %% Given #user, resource and permission, can a user access a resource? - %% - %% Possible responses: - %% true - %% false - %% {error, Error} - %% Something went wrong. Log and die. - {check_resource_access, 3} - ]; + [{description, 0}, {check_user_login, 2}, {check_vhost_access, 2}, + {check_resource_access, 3}]; behaviour_info(_Other) -> undefined. + +-endif. |