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
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class Identity < ActiveRecord::Base
|
class Identity < ActiveRecord::Base
|
||||||
def self.uniqueness_scope
|
|
||||||
:provider
|
|
||||||
end
|
|
||||||
|
|
||||||
include Sortable
|
include Sortable
|
||||||
include CaseSensitivity
|
include CaseSensitivity
|
||||||
|
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
|
|
||||||
validates :provider, presence: true
|
validates :provider, presence: true
|
||||||
validates :extern_uid, allow_blank: true, uniqueness: { scope: uniqueness_scope, case_sensitive: false }
|
validates :extern_uid, allow_blank: true, uniqueness: { scope: UniquenessScopes.scopes, case_sensitive: false }
|
||||||
validates :user_id, uniqueness: { scope: uniqueness_scope }
|
validates :user_id, uniqueness: { scope: UniquenessScopes.scopes }
|
||||||
|
|
||||||
before_save :ensure_normalized_extern_uid, if: :extern_uid_changed?
|
before_save :ensure_normalized_extern_uid, if: :extern_uid_changed?
|
||||||
after_destroy :clear_user_synced_attributes, if: :user_synced_attributes_metadata_from_provider?
|
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