f1f8518985
feat(auth): 添加用户权限获取接口并完善JWT令牌角色信息 - 在JWT令牌中添加用户角色信息 - 新增get_my_permissions接口用于获取当前用户权限码列表 - 重构认证回调逻辑,增加错误日志记录 - 更新用户信息获取接口使用Authorization头验证 ```
39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
"""add device_replacements table
|
|
|
|
Revision ID: h8i9j0k1l2m3
|
|
Revises: g7h8i9j0k1l2
|
|
Create Date: 2026-04-05
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
revision = 'h8i9j0k1l2m3'
|
|
down_revision = 'g7h8i9j0k1l2'
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade():
|
|
op.create_table(
|
|
'device_replacements',
|
|
sa.Column('id', sa.BigInteger(), primary_key=True),
|
|
sa.Column('onu_device_id', sa.BigInteger(), sa.ForeignKey('onu_devices.id'), nullable=False),
|
|
sa.Column('old_mac', sa.String(17), nullable=False),
|
|
sa.Column('new_mac', sa.String(17), nullable=False),
|
|
sa.Column('reason', sa.Text()),
|
|
sa.Column('operator_id', sa.String(100)),
|
|
sa.Column('operator_name', sa.String(100)),
|
|
sa.Column('replaced_at', sa.TIMESTAMP(), nullable=False, server_default=sa.text('now()')),
|
|
sa.Column('created_at', sa.TIMESTAMP(), nullable=False, server_default=sa.text('now()')),
|
|
)
|
|
op.create_index('idx_device_replacements_onu_device_id', 'device_replacements', ['onu_device_id'])
|
|
op.create_index('idx_device_replacements_old_mac', 'device_replacements', ['old_mac'])
|
|
op.create_index('idx_device_replacements_new_mac', 'device_replacements', ['new_mac'])
|
|
|
|
|
|
def downgrade():
|
|
op.drop_index('idx_device_replacements_new_mac', 'device_replacements')
|
|
op.drop_index('idx_device_replacements_old_mac', 'device_replacements')
|
|
op.drop_index('idx_device_replacements_onu_device_id', 'device_replacements')
|
|
op.drop_table('device_replacements')
|