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"授权失败"
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"退出团队失败"
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]
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
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
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
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
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
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]