Add RBAC: admin user management, audit log, runtime settings, delete PC
This commit is contained in:
@@ -74,6 +74,20 @@ def require_admin(user: models.User = Depends(get_current_user)):
|
||||
return user
|
||||
|
||||
|
||||
def log_action(db: Session, user: Optional[models.User], action: str, details: Optional[str] = None):
|
||||
try:
|
||||
entry = models.AuditLog(
|
||||
user_id=user.id if user else None,
|
||||
username=user.username if user else None,
|
||||
action=action,
|
||||
details=details,
|
||||
)
|
||||
db.add(entry)
|
||||
db.commit()
|
||||
except Exception:
|
||||
db.rollback()
|
||||
|
||||
|
||||
def create_default_admin(db: Session) -> Optional[models.User]:
|
||||
if not settings.CREATE_ADMIN_ON_STARTUP:
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user