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()
|