Files
opc-backend/seed_task_admin.py

56 lines
1.8 KiB
Python
Raw Normal View History

import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')
django.setup()
from django.contrib.auth import get_user_model
from users.models import Role, Permission, RolePermission, UserRole
User = get_user_model()
def seed():
print("--- 开始配置测试角色与账号 ---")
# 1. 创建任务管理员角色
task_role, _ = Role.objects.get_or_create(
code="TASK_ADMIN",
defaults={
"name": "任务管理员",
"description": "仅能管理和查看全站任务的受限管理角色"
}
)
print("角色 TASK_ADMIN 已准备")
# 2. 为该角色分配 '全站任务管理' 权限
task_perm = Permission.objects.filter(code="menu:business:tasks").first()
if task_perm:
RolePermission.objects.get_or_create(role=task_role, permission=task_perm)
print("已分配 menu:business:tasks 权限给该角色")
else:
print("错误:未找到 menu:business:tasks 权限")
# 3. 创建测试账号
test_user = User.objects.filter(username="task_admin").first()
if not test_user:
test_user = User.objects.create_user(
username="task_admin",
password="123456",
nickname="任务审核专员",
is_staff=True # 必须为 is_staff 才能访问管理端 /admin/login
)
print("测试账号 task_admin/123456 创建成功")
else:
test_user.set_password("123456")
test_user.is_staff = True
test_user.save()
print("测试账号已存在,密码已重置为 123456")
# 4. 绑定角色
UserRole.objects.get_or_create(user=test_user, role=task_role)
print("已将 TASK_ADMIN 角色绑定给测试账号 task_admin")
print("--- 配置完成 ---")
if __name__ == '__main__':
seed()