mirror of
https://github.com/Dvorinka/swingmusic-extended.git
synced 2026-06-03 20:13:02 +00:00
c77d0927c7
+ fix: cli password reset + delete old migrations
44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
import hmac
|
|
import hashlib
|
|
|
|
from flask_jwt_extended import current_user
|
|
|
|
from app.config import UserConfig
|
|
|
|
|
|
def hash_password(password: str) -> str:
|
|
"""
|
|
Hashes the given password using sha256 algorithm and the user id as salt.
|
|
|
|
:param password: The password to hash.
|
|
|
|
:return: The hashed password.
|
|
"""
|
|
return hashlib.pbkdf2_hmac(
|
|
"sha256", password.encode("utf-8"), UserConfig().serverId.encode("utf-8"), 100000
|
|
).hex()
|
|
|
|
|
|
def check_password(password: str, hashed: str) -> bool:
|
|
"""
|
|
This function checks if the given password matches the hashed password.
|
|
|
|
:param password: The password to check.
|
|
:param hashed: The hashed password.
|
|
|
|
:return: Whether the password matches.
|
|
"""
|
|
|
|
return hmac.compare_digest(hash_password(password), hashed)
|
|
|
|
|
|
def get_current_userid() -> int:
|
|
"""
|
|
Get the current session user.
|
|
"""
|
|
try:
|
|
return current_user["id"]
|
|
except RuntimeError:
|
|
# Catch this error raised during migration execution
|
|
return 1
|