예제 #1
0
 def change_tenant_admin(self, user_id, other_user_id, tenant_name):
     s_id = transaction.savepoint()
     enterprise = enterprise_services.get_enterprise_first()
     try:
         tenant = self.get_tenant_by_tenant_name(tenant_name=tenant_name)
         team_repo.get_user_perms_in_permtenant(
             user_id=user_id, tenant_id=tenant.ID).delete()
         team_repo.get_user_perms_in_permtenant(
             user_id=other_user_id, tenant_id=tenant.ID).delete()
         own_perm_info = {
             "user_id": user_id,
             "tenant_id": tenant.ID,
             "identity": "viewer",
             "enterprise_id": enterprise.ID
         }
         other_perm_info = {
             "user_id": other_user_id,
             "tenant_id": tenant.ID,
             "identity": "owner",
             "enterprise_id": enterprise.ID
         }
         perm_services.add_user_tenant_perm(own_perm_info)
         perm_services.add_user_tenant_perm(other_perm_info)
         transaction.savepoint_commit(s_id)
         return 200, u"授权成功"
     except Exception as e:
         logger.exception(e)
         transaction.savepoint_rollback(s_id)
         return 400, u"授权失败"
예제 #2
0
 def exit_current_team(self, team_name, user_id):
     s_id = transaction.savepoint()
     try:
         tenant = self.get_tenant_by_tenant_name(tenant_name=team_name)
         team_repo.get_user_perms_in_permtenant(user_id=user_id, tenant_id=tenant.ID).delete()
         transaction.savepoint_commit(s_id)
         return 200, u"退出团队成功"
     except Exception as e:
         logger.exception(e)
         transaction.savepoint_rollback(s_id)
         return 400, u"退出团队失败"
예제 #3
0
 def get_user_perm_role_in_permtenant(self, user_id, tenant_name):
     """获取一个用户在一个团队的角色名称列表"""
     tenant = self.get_tenant_by_tenant_name(tenant_name=tenant_name)
     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_repo.get_role_name_by_role_id(role_id=i) for i in role_id_list]
예제 #4
0
 def get_user_perm_identitys_in_permtenant(self, user_id, tenant_name):
     """获取用户在一个团队的身份列表"""
     tenant = self.get_tenant_by_tenant_name(tenant_name=tenant_name)
     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
예제 #5
0
 def get_user_perm_in_tenant(self, user_id, tenant_name):
     """获取一个用户在一个团队中的拥有权限元祖"""
     tenant = self.get_tenant_by_tenant_name(tenant_name=tenant_name)
     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 = [perm.role_id for perm in user_perms]
     role_perm_tuple = ()
     for role_id in role_id_list:
         if not role_id:
             continue
         perm_tuple = role_perm_repo.get_perm_by_role_id(role_id=role_id)
         role_perm_tuple += perm_tuple
     return role_perm_tuple
예제 #6
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
예제 #7
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
예제 #8
0
 def get_user_perms_in_permtenant(self, user_id, tenant_name):
     tenant = self.get_tenant_by_tenant_name(tenant_name=tenant_name)
     user_perms = team_repo.get_user_perms_in_permtenant(user_id=user_id, tenant_id=tenant.ID)
     return user_perms
예제 #9
0
 def get_user_perm_identitys_in_permtenant(self, user_id, tenant_name):
     tenant = self.get_tenant_by_tenant_name(tenant_name=tenant_name)
     user_perms = team_repo.get_user_perms_in_permtenant(
         user_id=user_id, tenant_id=tenant.ID)
     return [perm.identity for perm in user_perms]