Move Identity.uniqueness_scope to a module
Moving this method to a separate module looks a bit odd, but it allows for EE to extend the method without also having to redefine a variety of validation rules.
This commit is contained in:
parent
9aa705dd38
commit
9d5f921ab0
|
@ -1,18 +1,14 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Identity < ActiveRecord::Base
|
||||
def self.uniqueness_scope
|
||||
:provider
|
||||
end
|
||||
|
||||
include Sortable
|
||||
include CaseSensitivity
|
||||
|
||||
belongs_to :user
|
||||
|
||||
validates :provider, presence: true
|
||||
validates :extern_uid, allow_blank: true, uniqueness: { scope: uniqueness_scope, case_sensitive: false }
|
||||
validates :user_id, uniqueness: { scope: uniqueness_scope }
|
||||
validates :extern_uid, allow_blank: true, uniqueness: { scope: UniquenessScopes.scopes, case_sensitive: false }
|
||||
validates :user_id, uniqueness: { scope: UniquenessScopes.scopes }
|
||||
|
||||
before_save :ensure_normalized_extern_uid, if: :extern_uid_changed?
|
||||
after_destroy :clear_user_synced_attributes, if: :user_synced_attributes_metadata_from_provider?
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Identity < ActiveRecord::Base
|
||||
# This module and method are defined in a separate file to allow EE to
|
||||
# redefine the `scopes` method before it is used in the `Identity` model.
|
||||
module UniquenessScopes
|
||||
def self.scopes
|
||||
[:provider]
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue