Files
server-core/alembic/versions/0030_remove_enterprise_role.py
T
Pine dbc29eee59 feat(membership): 成员制归属重构与叠加制身份(多对多成员表+转园两级审核)
- park_members/company_members 多对多成员表(0028),users.affiliation 为派生缓存由 sync_user_affiliation 刷新
- 转园两级审核状态机(0029):pending_from→pending_to→approved,支持用户/企业整体转园与运营端兜底
- 叠加制身份(0030):身份恒为运营/载体/OPC,企业管理员为能力叠加非身份,去除 enterprise/carrier 直写角色
- rbac 新增 memberships/park-transfers/企业管理员工作台 /admin/ent/* 接口

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-31 20:36:26 +08:00

36 lines
1022 B
Python

"""数据修复:企业管理员是能力标记(company_members.is_admin),不是身份。
早期绑定企业管理员时误将 users.role 改写为 'enterprise'(导致桌面端被分到甲方企业端)。
按叠加制身份模型,身份仅 operator/carrier/opc_member——本迁移把 role='enterprise'
复位为 'opc_member',企业管理能力保留在 company_members.is_admin 不变。
Revision ID: 0030_remove_enterprise_role
Revises: 0029_transfer_two_stage
Create Date: 2026-08-31
"""
from __future__ import annotations
import sqlalchemy as sa
from alembic import op
revision = "0030_remove_enterprise_role"
down_revision = "0029_transfer_two_stage"
branch_labels = None
depends_on = None
def upgrade() -> None:
op.execute(
sa.text(
"""
UPDATE users SET role = 'opc_member', updated_at = ''
WHERE role = 'enterprise'
"""
)
)
def downgrade() -> None:
# 不可逆修复:不恢复误改的 enterprise 角色
pass