1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2025-12-01 05:43:04 +00:00

refactor: user management

هذا الالتزام موجود في:
Adam Cooke
2021-07-27 16:55:20 +00:00
الأصل e9a52e9512
التزام daf469ce7f
27 ملفات معدلة مع 106 إضافات و359 حذوفات

عرض الملف

@@ -16,43 +16,4 @@ class OrganizationUser < ApplicationRecord
belongs_to :organization
belongs_to :user, :polymorphic => true, :optional => true
validate :validate_uniqueness
before_create :create_user_invite
after_destroy :remove_user_invites
def email_address
@email_address ||= user&.email_address
end
def email_address=(value)
@email_address = value
end
def create_user_invite
if self.user.nil?
user = UserInvite.where(:email_address => @email_address).first_or_initialize
if user.save
self.user = user
else
errors.add :base, user.errors.full_messages.to_sentence
throw :abort
end
end
end
def validate_uniqueness
if self.email_address.present?
if organization.organization_users.where.not(:id => self.id).any? { |ou| ou.user.email_address.upcase == self.email_address.upcase }
errors.add :email_address, "is already assigned or has an pending invite"
end
end
end
def remove_user_invites
if self.user.is_a?(UserInvite) && self.user.organizations.empty?
self.user.destroy
end
end
end