You've already forked opc-backend
开发了多角色登录与鉴权接口:实现了普通用户、企业和管理员的登录分流,并支持Token验证。
开发了权限控制接口:实现了通过数据库分配菜单权限节点,控制接口访问安全。 开发了实名认证中心:实现了个人身份证信息与企业营业执照的提交与审核接口。 开发了任务与协作大厅核心业务:实现了任务的发布、接单、状态流转以及专家邀约接口。 配置了全局环境变量与数据库引擎:集成了 PostgreSQL 数据库、Redis 缓存与 MinIO 对象存储。
This commit is contained in:
55
seed_task_admin.py
Normal file
55
seed_task_admin.py
Normal file
@@ -0,0 +1,55 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user