summaryrefslogtreecommitdiff
path: root/src/rabbit_auth_backend.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rabbit_auth_backend.erl')
-rw-r--r--src/rabbit_auth_backend.erl20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/rabbit_auth_backend.erl b/src/rabbit_auth_backend.erl
index 99f291f1..315d5719 100644
--- a/src/rabbit_auth_backend.erl
+++ b/src/rabbit_auth_backend.erl
@@ -16,8 +16,17 @@
-module(rabbit_auth_backend).
+-include("rabbit.hrl").
+
-ifdef(use_specs).
+-export_type([auth_user/0]).
+
+-type(auth_user() ::
+ #auth_user{username :: rabbit_types:username(),
+ tags :: [atom()],
+ impl :: any()}).
+
%% A description proplist as with auth mechanisms,
%% exchanges. Currently unused.
-callback description() -> [proplists:property()].
@@ -33,7 +42,7 @@
%% {refused, Msg, Args}
%% Client failed authentication. Log and die.
-callback check_user_login(rabbit_types:username(), [term()]) ->
- {'ok', rabbit_types:user(), any()} |
+ {'ok', auth_user()} |
{'refused', string(), [any()]} |
{'error', any()}.
@@ -43,11 +52,10 @@
%% false
%% {error, Error}
%% Something went wrong. Log and die.
--callback check_vhost_access(rabbit_types:user(), any(),
+-callback check_vhost_access(auth_user(),
rabbit_types:vhost(), rabbit_net:socket()) ->
boolean() | {'error', any()}.
-
%% Given #user, resource and permission, can a user access a resource?
%%
%% Possible responses:
@@ -55,7 +63,7 @@
%% false
%% {error, Error}
%% Something went wrong. Log and die.
--callback check_resource_access(rabbit_types:user(), any(),
+-callback check_resource_access(auth_user(),
rabbit_types:r(atom()),
rabbit_access_control:permission_atom()) ->
boolean() | {'error', any()}.
@@ -65,8 +73,8 @@
-export([behaviour_info/1]).
behaviour_info(callbacks) ->
- [{description, 0}, {check_user_login, 2}, {check_vhost_access, 4},
- {check_resource_access, 4}];
+ [{description, 0}, {check_user_login, 2}, {check_vhost_access, 3},
+ {check_resource_access, 3}];
behaviour_info(_Other) ->
undefined.