import os import sys import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings') django.setup() from django.contrib.auth import get_user_model from django.contrib.auth.models import Group User = get_user_model() def list_users(): """ 列出所有用户 """ print("=" * 60) print("系统用户列表:") print("=" * 60) users = User.objects.all() if not users: print("暂无用户") else: for user in users: print(f"\n用户名: {user.username}") print(f" 姓名: {user.name}") print(f" 邮箱: {user.email}") print(f" 手机号: {user.phone}") print(f" 状态: {user.status}") print(f" 是否管理员: {'是' if user.is_superuser else '否'}") print(f" 是否员工: {'是' if user.is_staff else '否'}") print(f" 是否激活: {'是' if user.is_active else '否'}") print(f" 所属用户组: {', '.join([g.name for g in user.groups.all()]) or '无'}") def create_admin_user(username='admin', password='admin123', email='admin@example.com', name='系统管理员'): """ 创建管理员用户 """ try: user = User.objects.get(username=username) print(f"\n用户 '{username}' 已存在,跳过创建") return user except User.DoesNotExist: try: user = User.objects.create_superuser( username=username, email=email, password=password ) user.name = name user.phone = None user.show_hosts = False user.status = 'approved' user.save() print(f"\n✓ 成功创建管理员用户: {username}") print(f" - 姓名: {name}") print(f" - 邮箱: {email}") print(f" - 密码: {password}") print(f" - 状态: {user.status}") return user except Exception as e: print(f"\n✗ 创建用户失败: {e}") return None def create_test_users(): """ 创建测试用户 """ test_users = [ { 'username': 'testuser', 'password': 'test123', 'email': 'test@example.com', 'name': '测试用户', 'is_staff': False, 'is_superuser': False }, { 'username': 'developer', 'password': 'dev123', 'email': 'dev@example.com', 'name': '开发人员', 'is_staff': True, 'is_superuser': False } ] created_count = 0 print("\n" + "=" * 60) print("创建测试用户...") print("=" * 60) for user_data in test_users: try: user = User.objects.get(username=user_data['username']) print(f"用户 '{user_data['username']}' 已存在,跳过创建") continue except User.DoesNotExist: try: user = User.objects.create_user( username=user_data['username'], email=user_data['email'], password=user_data['password'] ) user.name = user_data['name'] user.is_staff = user_data['is_staff'] user.is_superuser = user_data['is_superuser'] user.phone = None user.show_hosts = False user.status = 'approved' user.save() print(f"✓ 成功创建用户: {user_data['username']} ({user_data['name']})") created_count += 1 except Exception as e: print(f"✗ 创建用户 '{user_data['username']}' 失败: {e}") return created_count def list_groups(): """ 列出所有用户组 """ print("\n" + "=" * 60) print("系统用户组列表:") print("=" * 60) groups = Group.objects.all() if not groups: print("暂无用户组") else: for group in groups: print(f"\n组名: {group.name}") print(f" 权限数量: {group.permissions.count()}") print(f" 用户数量: {group.user_set.count()}") if group.user_set.exists(): print(f" 成员: {', '.join([u.username for u in group.user_set.all()])}") def create_default_groups(): """ 创建默认用户组 """ groups_config = [ {'name': '管理员组', 'description': '拥有所有权限的管理员组'}, {'name': '开发人员组', 'description': '开发人员组'}, {'name': '测试人员组', 'description': '测试人员组'}, {'name': '只读用户组', 'description': '只读用户组'}, ] created_count = 0 print("\n" + "=" * 60) print("创建默认用户组...") print("=" * 60) for group_config in groups_config: try: Group.objects.get(name=group_config['name']) print(f"用户组 '{group_config['name']}' 已存在") except Group.DoesNotExist: try: Group.objects.create(name=group_config['name']) print(f"✓ 创建用户组: {group_config['name']}") created_count += 1 except Exception as e: print(f"✗ 创建用户组 '{group_config['name']}' 失败: {e}") return created_count if __name__ == '__main__': import argparse parser = argparse.ArgumentParser(description='用户管理脚本') parser.add_argument('--list', action='store_true', help='列出所有用户') parser.add_argument('--create-admin', action='store_true', help='创建管理员用户') parser.add_argument('--create-test', action='store_true', help='创建测试用户') parser.add_argument('--create-groups', action='store_true', help='创建默认用户组') parser.add_argument('--list-groups', action='store_true', help='列出所有用户组') parser.add_argument('--init', action='store_true', help='初始化所有数据(创建管理员、测试用户和用户组)') args = parser.parse_args() if args.list: list_users() elif args.create_admin: create_admin_user() elif args.create_test: create_test_users() elif args.create_groups: create_default_groups() elif args.list_groups: list_groups() elif args.init: print("=" * 60) print("初始化用户数据...") print("=" * 60) admin = create_admin_user() if admin: test_count = create_test_users() group_count = create_default_groups() list_users() list_groups() print("\n" + "=" * 60) print("初始化完成!") print("=" * 60) print(f"✓ 创建了 {test_count} 个测试用户") print(f"✓ 创建了 {group_count} 个用户组") print("\n默认管理员账号:") print(" 用户名: admin") print(" 密码: admin123") print("\n⚠️ 请在首次登录后修改默认密码!") else: parser.print_help()