Files
2026-08-25 16:20:27 +02:00

36 lines
1.1 KiB
Python

import db
from hashlib import sha256
# Check if access token can update domain's ip
def check_token_domain(db_path: str, token: str, domain: str) -> bool:
userid = db.Token.get_user(db_path, token)
domain = domain.strip()
return domain in db.User.get_domains(db_path, userid)
# Verify user's passowrd for login. Return UserID on success, None on failure
def user_login(db_path: str, username: str, password: str) -> int | None:
try:
userid = db.User.get_id(db_path, username)
except ValueError:
return None
pwsalt, pwhash = db.User.get_password_hash(db_path, userid)
password_hash = sha256( (pwsalt + password).encode('utf-8')).hexdigest()
if pwhash == password_hash:
return userid
return None
# Change password of user (by user)
def change_user_password(db_path: str, userid: int, oldpass: str, newpass: str) -> None:
username = db.User.get_username(db_path, userid)
if user_login(db_path, username, oldpass) is None:
raise ValueError("Incorrect password")
db.User.set_password(db_path, userid, newpass)