diff options
| author | rr- | 2016-05-10 11:58:55 +0200 |
|---|---|---|
| committer | rr- | 2016-05-10 12:15:33 +0200 |
| commit | 4ec842024c0bebe7012a315a24e74b2a9e1330e2 (patch) | |
| tree | b2ff9fad791c0cef16662e6822d4dfa4ab70ac6d /server/szurubooru/func/auth.py | |
| parent | cecf62012601195791d4f57b40ef964d46aca5f7 (diff) | |
server/users: implement RANK_MAP
Diffstat (limited to 'server/szurubooru/func/auth.py')
| -rw-r--r-- | server/szurubooru/func/auth.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/server/szurubooru/func/auth.py b/server/szurubooru/func/auth.py index 9134a6c..95d7f16 100644 --- a/server/szurubooru/func/auth.py +++ b/server/szurubooru/func/auth.py @@ -1,6 +1,18 @@ import hashlib import random +from collections import OrderedDict from szurubooru import config, db, errors +from szurubooru.func import util + +RANK_MAP = OrderedDict([ + (db.User.RANK_ANONYMOUS, 'anonymous'), + (db.User.RANK_RESTRICTED, 'restricted'), + (db.User.RANK_REGULAR, 'regular'), + (db.User.RANK_POWER, 'power'), + (db.User.RANK_MODERATOR, 'moderator'), + (db.User.RANK_ADMINISTRATOR, 'administrator'), + (db.User.RANK_NOBODY, 'nobody'), +]) def get_password_hash(salt, password): ''' Retrieve new-style password hash. ''' @@ -36,10 +48,12 @@ def is_valid_password(user, password): return valid_hash in possible_hashes def has_privilege(user, privilege_name): + all_ranks = list(RANK_MAP.keys()) assert privilege_name in config.config['privileges'] - assert user.rank in db.User.ALL_RANKS - minimal_rank = config.config['privileges'][privilege_name] - good_ranks = db.User.ALL_RANKS[db.User.ALL_RANKS.index(minimal_rank):] + assert user.rank in all_ranks + minimal_rank = util.flip(RANK_MAP)[ + config.config['privileges'][privilege_name]] + good_ranks = all_ranks[all_ranks.index(minimal_rank):] return user.rank in good_ranks def verify_privilege(user, privilege_name): |