aboutsummaryrefslogtreecommitdiff
path: root/server/szurubooru/func/auth.py
diff options
context:
space:
mode:
authorrr-2016-05-10 11:58:55 +0200
committerrr-2016-05-10 12:15:33 +0200
commit4ec842024c0bebe7012a315a24e74b2a9e1330e2 (patch)
treeb2ff9fad791c0cef16662e6822d4dfa4ab70ac6d /server/szurubooru/func/auth.py
parentcecf62012601195791d4f57b40ef964d46aca5f7 (diff)
server/users: implement RANK_MAP
Diffstat (limited to 'server/szurubooru/func/auth.py')
-rw-r--r--server/szurubooru/func/auth.py20
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):

© 2015 - 2026 Jakob L. Kreuze