```
feat(auth): 添加用户权限获取接口并完善JWT令牌角色信息 - 在JWT令牌中添加用户角色信息 - 新增get_my_permissions接口用于获取当前用户权限码列表 - 重构认证回调逻辑,增加错误日志记录 - 更新用户信息获取接口使用Authorization头验证 ```
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
"""add audit_logs table
|
||||
|
||||
Revision ID: g7h8i9j0k1l2
|
||||
Revises: f6a7b8c9d0e1
|
||||
Create Date: 2026-04-05
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects.postgresql import JSONB
|
||||
|
||||
revision = 'g7h8i9j0k1l2'
|
||||
down_revision = 'f6a7b8c9d0e1'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.create_table(
|
||||
'audit_logs',
|
||||
sa.Column('id', sa.Integer(), primary_key=True),
|
||||
sa.Column('user_id', sa.String(100), nullable=False),
|
||||
sa.Column('username', sa.String(100), nullable=False),
|
||||
sa.Column('user_role', sa.String(50)),
|
||||
sa.Column('action_time', sa.TIMESTAMP(), nullable=False, server_default=sa.text('now()')),
|
||||
sa.Column('action_type', sa.String(50), nullable=False),
|
||||
sa.Column('action_subtype', sa.String(50)),
|
||||
sa.Column('ip_address', sa.String(45)),
|
||||
sa.Column('user_agent', sa.Text()),
|
||||
sa.Column('request_method', sa.String(10)),
|
||||
sa.Column('request_path', sa.String(500)),
|
||||
sa.Column('status', sa.String(20), nullable=False),
|
||||
sa.Column('status_code', sa.Integer()),
|
||||
sa.Column('resource_type', sa.String(50)),
|
||||
sa.Column('resource_id', sa.String(100)),
|
||||
sa.Column('resource_name', sa.String(200)),
|
||||
sa.Column('description', sa.Text(), nullable=False),
|
||||
sa.Column('request_params', JSONB()),
|
||||
sa.Column('response_data', JSONB()),
|
||||
sa.Column('error_message', sa.Text()),
|
||||
sa.Column('created_at', sa.TIMESTAMP(), nullable=False, server_default=sa.text('now()')),
|
||||
)
|
||||
op.create_index('idx_audit_logs_action_time', 'audit_logs', ['action_time'])
|
||||
op.create_index('idx_audit_logs_user_id', 'audit_logs', ['user_id'])
|
||||
op.create_index('idx_audit_logs_action_type', 'audit_logs', ['action_type'])
|
||||
op.create_index('idx_audit_logs_resource_type', 'audit_logs', ['resource_type'])
|
||||
op.create_index('idx_audit_logs_status', 'audit_logs', ['status'])
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_index('idx_audit_logs_status', 'audit_logs')
|
||||
op.drop_index('idx_audit_logs_resource_type', 'audit_logs')
|
||||
op.drop_index('idx_audit_logs_action_type', 'audit_logs')
|
||||
op.drop_index('idx_audit_logs_user_id', 'audit_logs')
|
||||
op.drop_index('idx_audit_logs_action_time', 'audit_logs')
|
||||
op.drop_table('audit_logs')
|
||||
Reference in New Issue
Block a user