diff --git a/app/models/organization_membership.rb b/app/models/organization_membership.rb index 7082123f1..0729b7e65 100644 --- a/app/models/organization_membership.rb +++ b/app/models/organization_membership.rb @@ -14,6 +14,9 @@ class OrganizationMembership < ApplicationRecord after_create :update_user_organization_info_updated_at after_destroy :update_user_organization_info_updated_at + scope :admin, -> { where(type_of_user: "admin") } + scope :member, -> { where(type_of_user: %w[admin member]) } + # @note In the case where we delete the user, we don't need to worry # about updating the user. Hence the the `user has_many # :organization_memberships dependent: :delete_all` diff --git a/app/models/user.rb b/app/models/user.rb index f326cb6c9..ab43cf020 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -402,21 +402,21 @@ class User < ApplicationRecord end def admin_organizations - org_ids = organization_memberships.where(type_of_user: "admin").pluck(:organization_id) + org_ids = organization_memberships.admin.pluck(:organization_id) organizations.where(id: org_ids) end def member_organizations - org_ids = organization_memberships.where(type_of_user: %w[admin member]).pluck(:organization_id) + org_ids = organization_memberships.member.pluck(:organization_id) organizations.where(id: org_ids) end def org_member?(organization) - OrganizationMembership.exists?(user: self, organization: organization, type_of_user: %w[admin member]) + organization_memberships.member.exists?(organization: organization) end def org_admin?(organization) - OrganizationMembership.exists?(user: self, organization: organization, type_of_user: "admin") + organization_memberships.admin.exists?(organization: organization) end def block; end