feat(users): add user administration and password management
This commit is contained in:
parent
47f54d3461
commit
b584e60273
16 changed files with 720 additions and 22 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue