diff options
| author | rr- | 2016-04-03 22:03:58 +0200 |
|---|---|---|
| committer | rr- | 2016-04-03 23:21:22 +0200 |
| commit | 219ab7c2c350c4893cea57ba2fa81438680a5cdf (patch) | |
| tree | 2a7abd0f9434f3b77841deba6f3f06fd08b70ebd /server/szurubooru/middleware/authenticator.py | |
| parent | 7f4708c6969a48a2ff533a77f2aed02dd83dbb3f (diff) | |
server/general: be more pythonic
Diffstat (limited to 'server/szurubooru/middleware/authenticator.py')
| -rw-r--r-- | server/szurubooru/middleware/authenticator.py | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/server/szurubooru/middleware/authenticator.py b/server/szurubooru/middleware/authenticator.py index 58ed357..0f85027 100644 --- a/server/szurubooru/middleware/authenticator.py +++ b/server/szurubooru/middleware/authenticator.py @@ -1,24 +1,20 @@ import base64 import falcon -from szurubooru import errors -from szurubooru import model +from szurubooru import db, errors +from szurubooru.util import auth, users class Authenticator(object): ''' - Authenticates every request and puts information on active user in the + Authenticates every request and put information on active user in the request context. ''' - def __init__(self, auth_service, user_service): - self._auth_service = auth_service - self._user_service = user_service - def process_request(self, request, _response): - ''' Executed before passing the request to the API. ''' + ''' Bind the user to request. Update last login time if needed. ''' request.context.user = self._get_user(request) if request.get_param_as_bool('bump-login') \ and request.context.user.user_id: - self._user_service.bump_login_time(request.context.user) + users.bump_login_time(request.context.user) request.context.session.commit() def _get_user(self, request): @@ -27,15 +23,12 @@ class Authenticator(object): try: auth_type, user_and_password = request.auth.split(' ', 1) - if auth_type.lower() != 'basic': raise falcon.HTTPBadRequest( 'Invalid authentication type', 'Only basic authorization is supported.') - username, password = base64.decodebytes( user_and_password.encode('ascii')).decode('utf8').split(':') - return self._authenticate( request.context.session, username, password) except ValueError as err: @@ -46,16 +39,16 @@ class Authenticator(object): msg.format(request.auth, str(err))) def _authenticate(self, session, username, password): - ''' Tries to authenticate user. Throws AuthError for invalid users. ''' - user = self._user_service.get_by_name(session, username) + ''' Try to authenticate user. Throw AuthError for invalid users. ''' + user = users.get_by_name(session, username) if not user: raise errors.AuthError('No such user.') - if not self._auth_service.is_valid_password(user, password): + if not auth.is_valid_password(user, password): raise errors.AuthError('Invalid password.') return user def _create_anonymous_user(self): - user = model.User() + user = db.User() user.name = None user.access_rank = 'anonymous' user.password = None |