def post(self, request, *args, **kwargs): enterprise_id = request.data.get("enterprise_id") tenant_id = request.data.get("tenant_id") if tenant_id and enterprise_id: teams = Tenants.objects.filter(tenant_id=tenant_id, enterprise_id=enterprise_id) elif tenant_id and not enterprise_id: teams = Tenants.objects.filter(tenant_id=tenant_id) elif not tenant_id and enterprise_id: teams = Tenants.objects.filter(enterprise_id=enterprise_id) else: teams = Tenants.objects.all() if not teams: print(u"未发现团队, 初始化结束") return for team in teams: role_kind_services.init_default_roles(kind="team", kind_id=team.tenant_id) users = team_repo.get_tenant_users_by_tenant_ID(team.ID) admin = role_kind_services.get_role_by_name(kind="team", kind_id=team.tenant_id, name=u"管理员") developer = role_kind_services.get_role_by_name(kind="team", kind_id=team.tenant_id, name=u"开发者") if not admin or not developer: raise ServiceHandleException(msg="init failed", msg_show=u"初始化失败") if users: for user in users: if user.user_id == team.creater: user_kind_role_service.update_user_roles( kind="team", kind_id=team.tenant_id, user=user, role_ids=[admin.ID]) else: user_kind_role_service.update_user_roles( kind="team", kind_id=team.tenant_id, user=user, role_ids=[developer.ID]) result = general_message(msg="success", msg_show=u"初始化权限分配成功", code=200) return Response(result, status=200)
def handle(self, *args, **options): tenant_id = options['tenant_id'] enterprise_id = options['enterprise_id'] if tenant_id and enterprise_id: teams = Tenants.objects.filter(tenant_id=tenant_id, enterprise_id=enterprise_id) elif tenant_id and not enterprise_id: teams = Tenants.objects.filter(tenant_id=tenant_id) elif not tenant_id and enterprise_id: teams = Tenants.objects.filter(enterprise_id=enterprise_id) else: teams = Tenants.objects.all() if not teams: print(u"未发现团队, 初始化结束") return for team in teams: role_kind_services.init_default_roles(kind="team", kind_id=team.tenant_id) users = team_repo.get_tenant_users_by_tenant_ID(team.ID) admin = role_kind_services.get_role_by_name(kind="team", kind_id=team.tenant_id, name=u"管理员") developer = role_kind_services.get_role_by_name( kind="team", kind_id=team.tenant_id, name=u"开发者") if not admin or not developer: raise ServiceHandleException(msg="init failed", msg_show=u"初始化失败") if users: for user in users: if user.user_id == team.creater: user_kind_role_service.update_user_roles( kind="team", kind_id=team.tenant_id, user=user, role_ids=[admin.ID]) else: user_kind_role_service.update_user_roles( kind="team", kind_id=team.tenant_id, user=user, role_ids=[developer.ID])
def get_tenant_users_by_tenant_name(self, tenant_name): tenant = team_repo.get_tenant_by_tenant_name(tenant_name=tenant_name) user_list = team_repo.get_tenant_users_by_tenant_ID(tenant_ID=tenant.ID) return user_list
def get_team_users(self, team, name=None): users = team_repo.get_tenant_users_by_tenant_ID(team.ID) if users and name: users = users.filter(Q(nick_name__contains=name) | Q(real_name__contains=name)) return users
def get_team_users(self, team): users = team_repo.get_tenant_users_by_tenant_ID(team.ID) return users