Neda/Back/domains/users/service.py
2026-03-06 20:01:04 +03:30

44 lines
967 B
Python

import secrets
from sqlalchemy.ext.asyncio import AsyncSession
from core.security import hash_password
from domains.users.models import User
from domains.users.repo import create_user
from core.config import settings
def generate_user_secret():
# return secrets.token_urlsafe(settings.SECRET_PASS_LENGTH)
return "1234"
async def create_user_by_admin(
db: AsyncSession,
username: str,
role: str
):
secret = generate_user_secret()
user = User(
username=username,
role=role,
secret_hash=hash_password(secret)
)
await create_user(db, user)
return user, secret
async def get_user(db: AsyncSession, user_id):
from domains.users.repo import get_user_by_id
return await get_user_by_id(db, user_id)
async def reset_user_secret(db: AsyncSession, user: User):
new_secret = generate_user_secret()
user.secret_hash = hash_password(new_secret)
await db.commit()
return new_secret