From a78203ec7ab97015462a4d6ee5819e2c96ae1115 Mon Sep 17 00:00:00 2001 From: LV-426 Date: Wed, 4 Feb 2015 02:06:50 +0200 Subject: crypt_util: refactor validate_login(), mv to User_DB --- src/server/crypt_util.py | 21 +-------------------- src/server/rz_user_db.py | 9 +++++++++ 2 files changed, 10 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/server/crypt_util.py b/src/server/crypt_util.py index a3b2582d..057ed4bc 100644 --- a/src/server/crypt_util.py +++ b/src/server/crypt_util.py @@ -1,7 +1,5 @@ -import hashlib, uuid +import hashlib import logging -import pickle - log = logging.getLogger('rhizi') @@ -9,20 +7,3 @@ def hash_pw(pw_str, salt_str): salt = hashlib.sha512(salt_str).hexdigest() ret = hashlib.sha512(pw_str + salt).hexdigest() return ret - -def validate_login(config, u, p): - htpasswd_path = config.htpasswd_path - - salt = config.secret_key - - with open(htpasswd_path) as f: - pw_db = pickle.load(f) - - existing_pw_hash = pw_db.get(u) - if None == existing_pw_hash: - raise Exception('Not authorized') - - if hash_pw(p, salt) != existing_pw_hash: - raise Exception('Not authorized') - - diff --git a/src/server/rz_user_db.py b/src/server/rz_user_db.py index ebca5465..31ec1357 100644 --- a/src/server/rz_user_db.py +++ b/src/server/rz_user_db.py @@ -127,5 +127,14 @@ class User_DB(object): u = self.persistent_data_store[uid] return role in u.role_set + def validate_login(self, email_address, pw_hash): + _, u = self.__lookup_user__by_email_address(email_address) + existing_pw_hash = u.pw_hash + + assert None != existing_pw_hash, 'missing pw_hash for existing user' + + if pw_hash != existing_pw_hash: + raise Exception('Not authorized') + def shutdown(self): self.persistent_data_store.close() -- cgit v1.3.1