feat(users): add user administration and password management

This commit is contained in:
Schubert Ferenc 2026-07-11 14:04:30 +02:00
parent 47f54d3461
commit b584e60273
16 changed files with 720 additions and 22 deletions

View file

@ -1,5 +1,7 @@
from __future__ import annotations
from datetime import UTC, datetime
from fastapi import HTTPException, status
from sqlalchemy.orm import Session
@ -19,5 +21,6 @@ class AuthService:
detail="Invalid credentials",
headers={"WWW-Authenticate": "Bearer"},
)
return create_access_token(user.id, user.role.value)
user.last_login_at = datetime.now(UTC)
self.users.session.commit()
return create_access_token(user.id, user.role)

View file

@ -12,6 +12,7 @@ from app.models.customer import Customer
from app.models.device import Device
from app.models.equipment import Equipment
from app.models.location import Location
from app.models.user import User, UserRole
from app.models.validation import Validation
from app.repositories.base import Repository
from app.repositories.domain import (
@ -20,6 +21,7 @@ from app.repositories.domain import (
DeviceRepository,
EquipmentRepository,
LocationRepository,
UserRepository,
ValidationRepository,
)
@ -78,6 +80,7 @@ class CrudService:
class DomainServices:
def __init__(self, session: Session) -> None:
self.users: CrudService[User] = CrudService(UserRepository(session))
self.customers: CrudService[Customer] = CrudService(CustomerRepository(session))
self.locations: CrudService[Location] = CrudService(LocationRepository(session))
self.contacts: CrudService[Contact] = CrudService(ContactRepository(session))