مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-12-01 05:43:04 +00:00
refactor: user management
هذا الالتزام موجود في:
@@ -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
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم