jumpserver/utils/generate_fake_data/resources/users.py
fit2bot dd979f582a
stash (#5178)
* Dev (#4791)

* fix(xpack): 修复last login太长的问题 (#4786)

Co-authored-by: ibuler <ibuler@qq.com>

* perf: 更新密码中也发送邮件 (#4789)

Co-authored-by: ibuler <ibuler@qq.com>

* fix(terminal): 修复获取螺旋的异步api

* fix(terminal): 修复有的录像存储有问题的导致下载录像的bug

* fix(orgs): 修复组织添加用户bug

* perf(requirements): 修改jms-storage==0.0.34 (#4797)

Co-authored-by: Bai <bugatti_it@163.com>

Co-authored-by: fit2bot <68588906+fit2bot@users.noreply.github.com>
Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: Bai <bugatti_it@163.com>

* stash

* feat(system): 添加系统app

* stash

* fix: 修复一些bug

Co-authored-by: xinwen <coderWen@126.com>
Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: Bai <bugatti_it@163.com>
Co-authored-by: Jiangjie.Bai <32935519+BaiJiangJie@users.noreply.github.com>
2020-12-08 14:26:18 +08:00

63 lines
2.0 KiB
Python

from random import choice, sample
import forgery_py
from .base import FakeDataGenerator
from users.models import *
from orgs.models import OrganizationMember
class UserGroupGenerator(FakeDataGenerator):
resource = 'usergroup'
def do_generate(self, batch, batch_size):
groups = []
for i in batch:
group_name = forgery_py.name.job_title()
groups.append(UserGroup(name=group_name, org_id=self.org.id))
UserGroup.objects.bulk_create(groups, ignore_conflicts=True)
class UserGenerator(FakeDataGenerator):
resource = 'user'
roles: list
groups_id: list
def pre_generate(self):
self.roles = list(dict(User.ROLE.choices).keys())
self.groups_id = list(UserGroup.objects.all().values_list('id', flat=True))
def set_org(self, users):
relations = []
for u in users:
relations.append(OrganizationMember(
org_id=self.org.id,
user_id=u.id,
))
OrganizationMember.objects.bulk_create(relations, ignore_conflicts=True)
def set_groups(self, users):
relations = []
for i in users:
groups_to_join = sample(self.groups_id, 3)
_relations = [User.groups.through(user_id=i.id, usergroup_id=gid) for gid in groups_to_join]
relations.extend(_relations)
User.groups.through.objects.bulk_create(relations, ignore_conflicts=True)
def do_generate(self, batch, batch_size):
users = []
for i in batch:
username = forgery_py.internet.user_name(True) + '-' + str(i)
email = forgery_py.internet.email_address()
u = User(
username=username,
email=email,
name=username.title(),
role=choice(self.roles),
created_by='Faker'
)
users.append(u)
users = User.objects.bulk_create(users, ignore_conflicts=True)
self.set_org(users)
self.set_groups(users)