diff --git a/backend/alembic/versions/22a3b4c5d6e7_authorization.py b/backend/alembic/versions/22a3b4c5d6e7_authorization.py index 0f37826..4af906c 100644 --- a/backend/alembic/versions/22a3b4c5d6e7_authorization.py +++ b/backend/alembic/versions/22a3b4c5d6e7_authorization.py @@ -15,22 +15,22 @@ def upgrade(): bind=op.get_bind() for sql in DDL: op.execute(sql) - for code,name,kind,parent,order in PERMISSIONS: - bind.execute(sa.text("INSERT INTO permissions (perm_code,perm_name,perm_type,sort_order,status) VALUES (:code,:name,:kind,:order,1)"),dict(code=code,name=name,kind=kind,order=order)) + for code,name,kind,_parent,order in PERMISSIONS: + bind.execute(sa.text("INSERT INTO permissions (perm_code,perm_name,perm_type,sort_order,status) VALUES (:code,:name,:kind,:order,1)"),{"code": code,"name": name,"kind": kind,"order": order}) for code,_,_,parent,_ in PERMISSIONS: if parent: - bind.execute(sa.text("UPDATE permissions p JOIN permissions parent ON parent.perm_code=:parent SET p.parent_id=parent.id WHERE p.perm_code=:code"),dict(parent=parent,code=code)) + bind.execute(sa.text("UPDATE permissions p JOIN permissions parent ON parent.perm_code=:parent SET p.parent_id=parent.id WHERE p.perm_code=:code"),{"parent": parent,"code": code}) bind.execute(sa.text("INSERT INTO roles (role_code,role_name,description,sort_order,status) VALUES ('payroll_maker','工资制作人','指定制作人还需在权限设置中绑定,角色本身不能绕过月份锁',5,1)")) for role,codes in DEFAULTS.items(): for code in codes: - bind.execute(sa.text("INSERT INTO role_permissions (role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.perm_code=:code WHERE r.role_code=:role"),dict(code=code,role=role)) + bind.execute(sa.text("INSERT INTO role_permissions (role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.perm_code=:code WHERE r.role_code=:role"),{"code": code,"role": role}) from app.core.config import get_settings maker=get_settings().payroll_maker_user_id - if maker is not None and not bind.execute(sa.text("SELECT id FROM users WHERE id=:id AND status=1"),dict(id=maker)).scalar(): + if maker is not None and not bind.execute(sa.text("SELECT id FROM users WHERE id=:id AND status=1"),{"id": maker}).scalar(): raise RuntimeError("旧工资制作人账号无效,请修正配置后重试迁移") - bind.execute(sa.text("INSERT INTO authorization_settings (id,maker_user_id,revision) VALUES (1,:maker,1)"),dict(maker=maker)) + bind.execute(sa.text("INSERT INTO authorization_settings (id,maker_user_id,revision) VALUES (1,:maker,1)"),{"maker": maker}) if maker is not None: - bind.execute(sa.text("INSERT INTO user_roles (user_id,role_id) SELECT :maker,id FROM roles WHERE role_code='payroll_maker'"),dict(maker=maker)) + bind.execute(sa.text("INSERT INTO user_roles (user_id,role_id) SELECT :maker,id FROM roles WHERE role_code='payroll_maker'"),{"maker": maker}) def downgrade(): bind=op.get_bind() @@ -40,8 +40,8 @@ def downgrade(): op.drop_table('authorization_settings') codes=[row[0] for row in PERMISSIONS] for code in codes: - bind.execute(sa.text("DELETE rp FROM role_permissions rp JOIN permissions p ON p.id=rp.permission_id WHERE p.perm_code=:code"),dict(code=code)) + bind.execute(sa.text("DELETE rp FROM role_permissions rp JOIN permissions p ON p.id=rp.permission_id WHERE p.perm_code=:code"),{"code": code}) bind.execute(sa.text("DELETE ur FROM user_roles ur JOIN roles r ON r.id=ur.role_id WHERE r.role_code='payroll_maker'")) bind.execute(sa.text("DELETE FROM roles WHERE role_code='payroll_maker'")) for code in reversed(codes): - bind.execute(sa.text("DELETE FROM permissions WHERE perm_code=:code"),dict(code=code)) + bind.execute(sa.text("DELETE FROM permissions WHERE perm_code=:code"),{"code": code}) diff --git a/backend/alembic/versions/24c5d6e7f8a9_requirement_completion.py b/backend/alembic/versions/24c5d6e7f8a9_requirement_completion.py index 3502748..03d063b 100644 --- a/backend/alembic/versions/24c5d6e7f8a9_requirement_completion.py +++ b/backend/alembic/versions/24c5d6e7f8a9_requirement_completion.py @@ -105,19 +105,19 @@ def upgrade(): op.bulk_insert( definitions, [ - dict( - param_code=f"coefficient.personal.{field}", - param_name=title, - param_group="产品系数表", - value_type=kind, - unit=unit, - dimension_type="PRODUCT_CATEGORY", - value_min="1" if kind == "INT" else "0", - value_max="3660" if kind == "INT" else None, - description="按产品类别维护;未配置时沿用同日期的通用业务员参数。", - sort_order=52 + index, - status=1, - ) + { + "param_code": f"coefficient.personal.{field}", + "param_name": title, + "param_group": "产品系数表", + "value_type": kind, + "unit": unit, + "dimension_type": "PRODUCT_CATEGORY", + "value_min": "1" if kind == "INT" else "0", + "value_max": "3660" if kind == "INT" else None, + "description": "按产品类别维护;未配置时沿用同日期的通用业务员参数。", + "sort_order": 52 + index, + "status": 1, + } for index, (field, title, kind, unit) in enumerate(fields) ], ) diff --git a/backend/alembic/versions/25d6e7f8a9b0_monitor_permissions.py b/backend/alembic/versions/25d6e7f8a9b0_monitor_permissions.py index 7a51fe6..dcbc68d 100644 --- a/backend/alembic/versions/25d6e7f8a9b0_monitor_permissions.py +++ b/backend/alembic/versions/25d6e7f8a9b0_monitor_permissions.py @@ -14,8 +14,8 @@ def upgrade(): ("system:monitor:view", "系统监控:查看", 1), ("system:monitor:export", "系统监控:导出", 2), ): - bind.execute(sa.text("INSERT INTO permissions (perm_code,perm_name,perm_type,sort_order,status) SELECT :code,:name,:kind,100,1 WHERE NOT EXISTS (SELECT 1 FROM permissions WHERE perm_code=:code)"), dict(code=code,name=name,kind=kind)) - bind.execute(sa.text("INSERT INTO role_permissions (role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.perm_code=:code WHERE r.role_code='admin' AND NOT EXISTS (SELECT 1 FROM role_permissions old WHERE old.role_id=r.id AND old.permission_id=p.id)"), dict(code=code)) + bind.execute(sa.text("INSERT INTO permissions (perm_code,perm_name,perm_type,sort_order,status) SELECT :code,:name,:kind,100,1 WHERE NOT EXISTS (SELECT 1 FROM permissions WHERE perm_code=:code)"), {"code": code,"name": name,"kind": kind}) + bind.execute(sa.text("INSERT INTO role_permissions (role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.perm_code=:code WHERE r.role_code='admin' AND NOT EXISTS (SELECT 1 FROM role_permissions old WHERE old.role_id=r.id AND old.permission_id=p.id)"), {"code": code}) bind.execute(sa.text("UPDATE permissions p JOIN permissions parent ON parent.perm_code='system:monitor:view' SET p.parent_id=parent.id WHERE p.perm_code='system:monitor:export'"))