From 74de1cf78fcf26346a5fc394dcef7cb5177fd3b1 Mon Sep 17 00:00:00 2001 From: xxqfamous Date: Thu, 8 Jun 2023 15:55:56 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20=E7=BB=84=E7=BB=87=E5=A4=9A=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E5=88=A4=E6=96=AD=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/organization.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/models/organization.rb b/app/models/organization.rb index 75a2db971..baf85fc03 100644 --- a/app/models/organization.rb +++ b/app/models/organization.rb @@ -126,14 +126,24 @@ class Organization < Owner def is_only_admin?(user_id) team_users.joins(:team).where(user_id: user_id, teams: {authorize: %w(admin)}).present? + roles = has_roles(user_id) + roles.size > 1 ? false : roles.include?("admin") end def is_only_write?(user_id) - team_users.joins(:team).where(user_id: user_id, teams: {authorize: %w(write)}).present? + # team_users.joins(:team).where(user_id: user_id, teams: {authorize: %w(write)}).present? + roles = has_roles(user_id) + roles.size > 1 ? false : roles.include?("write") end def is_only_read?(user_id) - team_users.joins(:team).where(user_id: user_id, teams: {authorize: %w(read)}).present? + # team_users.joins(:team).where(user_id: user_id, teams: {authorize: %w(read)}).present? + roles = has_roles(user_id) + roles.size > 1 ? false : roles.include?("read") + end + + def has_roles(user_id) + teams.joins(:team_users).where("team_users.user_id=?", user_id).pluck("teams.authorize").uniq end # 是不是所有者团队的最后一个成员