Ejemplo n.º 1
0
 def get_team_by_team_id(self, team_id):
     team = team_repo.get_team_by_team_id(team_id=team_id)
     if team is None:
         raise Tenants.DoesNotExist()
     user = user_repo.get_by_user_id(team.creater)
     team.creater = user.nick_name
     return team
Ejemplo n.º 2
0
 def get_tenant_role_by_tenant_name(self, tenant_name):
     """获取一个团队中的所有角色和角色对应的权限信息"""
     try:
         tenant = self.get_tenant(tenant_name=tenant_name)
     except Tenants.DoesNotExist:
         tenant = self.get_team_by_team_id(tenant_name)
         if tenant is None:
             raise Tenants.DoesNotExist()
     return role_repo.get_tenant_role_by_tenant_id(tenant_id=tenant.pk)
Ejemplo n.º 3
0
 def change_tenant_role(self, user_id, tenant_name, role_id_list):
     """修改用户在团队中的角色"""
     try:
         tenant = self.get_tenant(tenant_name=tenant_name)
     except Tenants.DoesNotExist:
         tenant = self.get_team_by_team_id(tenant_name)
         if tenant is None:
             raise Tenants.DoesNotExist()
     enterprise = enterprise_services.get_enterprise_by_enterprise_id(enterprise_id=tenant.enterprise_id)
     user_role = role_repo.update_user_role_in_tenant_by_user_id_tenant_id_role_id(
         user_id=user_id, tenant_id=tenant.pk, enterprise_id=enterprise.pk, role_id_list=role_id_list)
     return user_role
Ejemplo n.º 4
0
 def get_user_perm_identitys_in_permtenant(self, user_id, tenant_name):
     """获取用户在一个团队的身份列表"""
     user = user_repo.get_by_user_id(user_id)
     try:
         tenant = self.get_tenant(tenant_name=tenant_name)
     except Tenants.DoesNotExist:
         tenant = self.get_team_by_team_id(tenant_name)
         if tenant is None:
             raise Tenants.DoesNotExist()
     user_roles = user_kind_role_service.get_user_roles(kind_id=tenant.ID, kind="team", user=user)
     if tenant.creater == user_id:
         user_roles["roles"].append("owner")
     return user_roles
Ejemplo n.º 5
0
 def user_is_exist_in_team(self, user_list, tenant_name):
     """判断一个用户是否存在于一个团队中"""
     try:
         tenant = self.get_tenant(tenant_name=tenant_name)
     except Tenants.DoesNotExist:
         tenant = self.get_team_by_team_id(tenant_name)
         if tenant is None:
             raise Tenants.DoesNotExist()
     enterprise = enterprise_services.get_enterprise_by_enterprise_id(enterprise_id=tenant.enterprise_id)
     for user_id in user_list:
         obj = PermRelTenant.objects.filter(user_id=user_id, tenant_id=tenant.pk, enterprise_id=enterprise.pk)
         if obj:
             return obj[0].user_id
     return False
Ejemplo n.º 6
0
    def get_all_team_role_id(self, tenant_name, allow_owner=False):
        """获取一个团队中的所有可选角色ID列表"""
        try:
            team_obj = self.get_tenant(tenant_name=tenant_name)
        except Tenants.DoesNotExist:
            team_obj = self.get_team_by_team_id(tenant_name)
            if team_obj is None:
                raise Tenants.DoesNotExist()

        filter = Q(is_default=True)
        if not allow_owner:
            filter &= ~Q(role_name="owner")
        default_role_id_list = TenantUserRole.objects.filter(filter).values_list("pk", flat=True)
        team_role_id_list = TenantUserRole.objects.filter(tenant_id=team_obj.pk, is_default=False).values_list("pk", flat=True)
        return list(default_role_id_list) + list(team_role_id_list)
Ejemplo n.º 7
0
 def get_user_perm_role_id_in_permtenant(self, user_id, tenant_name):
     """获取一个用户在一个团队的角色ID列表"""
     try:
         tenant = self.get_tenant(tenant_name=tenant_name)
     except Tenants.DoesNotExist:
         tenant = self.get_team_by_team_id(tenant_name)
         if tenant is None:
             raise Tenants.DoesNotExist()
     user_perms = team_repo.get_user_perms_in_permtenant(user_id=user_id, tenant_id=tenant.ID)
     if not user_perms:
         return []
     role_id_list = []
     for role_id in [perm.role_id for perm in user_perms]:
         if not role_id:
             continue
         role_id_list.append(role_id)
     return role_id_list
Ejemplo n.º 8
0
    def get_tenant_roles(self, tenant_id, page=None, page_size=None):
        """获取一个团队中的所有角色和角色对应的权限信息"""
        tenant = team_repo.get_team_by_team_id(tenant_id)
        if tenant is None:
            raise Tenants.DoesNotExist()

        role_list = role_repo.get_tenant_role_by_tenant_id(tenant_id=tenant.pk, allow_owner=True)
        if page is not None and page_size is None:
            paginator = Paginator(role_list, page_size)
            try:
                role_list = paginator.page(page).object_list
            except PageNotAnInteger:
                page = 1
                role_list = paginator.page(1).object_list
            except EmptyPage:
                page = paginator.num_pages
                role_list = paginator.page(paginator.num_pages).object_list
        return role_list
Ejemplo n.º 9
0
 def get_user_perm_identitys_in_permtenant(self, user_id, tenant_name):
     """获取用户在一个团队的身份列表"""
     try:
         tenant = self.get_tenant(tenant_name=tenant_name)
     except Tenants.DoesNotExist:
         tenant = self.get_team_by_team_id(tenant_name)
         if tenant is None:
             raise Tenants.DoesNotExist()
     user_perms = team_repo.get_user_perms_in_permtenant(user_id=user_id, tenant_id=tenant.ID)
     if not user_perms:
         return []
     identitys = [perm.identity for perm in user_perms]
     identity_list = []
     for identity in identitys:
         if not identity:
             continue
         identity_list.append(identity)
     return identity_list
Ejemplo n.º 10
0
 def get_team_service_count_by_team_name(self, team_name):
     tenant = self.get_tenant_by_tenant_name(tenant_name=team_name)
     if tenant is None:
         raise Tenants.DoesNotExist()
     return TenantServiceInfo.objects.filter(tenant_id=tenant.tenant_id).count()