28 lines
860 B
Ruby
28 lines
860 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Users
|
|
class BannedUser < ApplicationRecord
|
|
include EachBatch
|
|
|
|
self.primary_key = :user_id
|
|
|
|
belongs_to :user
|
|
has_one :credit_card_validation, class_name: '::Users::CreditCardValidation', primary_key: 'user_id',
|
|
foreign_key: 'user_id', inverse_of: :banned_user
|
|
has_many :emails, primary_key: 'user_id', foreign_key: 'user_id', inverse_of: :banned_user
|
|
|
|
validates :user, presence: true
|
|
validates :user_id, uniqueness: { message: N_("banned user already exists") }
|
|
|
|
scope :by_detumbled_email, ->(email) do
|
|
return none if email.blank?
|
|
|
|
joins(:emails)
|
|
.where({ emails: { detumbled_email: ::Gitlab::Utils::Email.normalize_email(email) } })
|
|
.where.not({ emails: { confirmed_at: nil } })
|
|
end
|
|
end
|
|
end
|
|
|
|
Users::BannedUser.prepend_mod_with('Users::BannedUser')
|