Add superadmin routes to API
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
"""Superadmin audit log model."""
|
||||
import logging
|
||||
|
||||
from gatehouse_app.extensions import db
|
||||
from gatehouse_app.models.base import BaseModel
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SuperadminAuditLog(BaseModel):
|
||||
"""Audit log for superadmin actions.
|
||||
|
||||
Records every action performed by superadmins for security and compliance.
|
||||
"""
|
||||
|
||||
__tablename__ = "superadmin_audit_logs"
|
||||
|
||||
superadmin_id = db.Column(
|
||||
db.String(36),
|
||||
db.ForeignKey("superadmins.id"),
|
||||
nullable=False,
|
||||
index=True
|
||||
)
|
||||
action = db.Column(db.String(100), nullable=False, index=True)
|
||||
resource_type = db.Column(db.String(50), nullable=False, index=True)
|
||||
resource_id = db.Column(db.String(36), nullable=True, index=True)
|
||||
org_id = db.Column(db.String(36), nullable=True, index=True)
|
||||
user_id = db.Column(db.String(36), nullable=True, index=True)
|
||||
ip_address = db.Column(db.String(45), nullable=True)
|
||||
user_agent = db.Column(db.Text, nullable=True)
|
||||
request_id = db.Column(db.String(100), nullable=True)
|
||||
extra_data = db.Column(db.JSON, nullable=True)
|
||||
success = db.Column(db.Boolean, default=True, nullable=False)
|
||||
error_message = db.Column(db.String(500), nullable=True)
|
||||
|
||||
# Relationship
|
||||
superadmin = db.relationship("Superadmin", back_populates="audit_logs")
|
||||
|
||||
def __repr__(self):
|
||||
return (
|
||||
f"<SuperadminAuditLog superadmin={self.superadmin_id} "
|
||||
f"action={self.action} resource={self.resource_type}/{self.resource_id}>"
|
||||
)
|
||||
|
||||
def to_dict(self, exclude=None):
|
||||
"""Convert to dictionary."""
|
||||
exclude = exclude or []
|
||||
return super().to_dict(exclude=exclude)
|
||||
Reference in New Issue
Block a user