diff options
author | James Edwards-Jones <jedwardsjones@gitlab.com> | 2018-04-23 00:04:56 +0300 |
---|---|---|
committer | James Edwards-Jones <jedwardsjones@gitlab.com> | 2018-05-02 16:36:47 +0300 |
commit | d14851f9a36ce4e41e94e21d251589a3d197c423 (patch) | |
tree | 142d9f632efbedc3f7bbc96fdb78bd7ec1a17249 /app/models/identity.rb | |
parent | b51f6e2c214df34a94b9097355775f29b269524b (diff) |
Backport Identity.uniqueness_scope from EE
Originates in 'SamlProvider has many linked Identities' from EE
Diffstat (limited to 'app/models/identity.rb')
-rw-r--r-- | app/models/identity.rb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/app/models/identity.rb b/app/models/identity.rb index 1011b9f1109..3fd0c5e751d 100644 --- a/app/models/identity.rb +++ b/app/models/identity.rb @@ -1,12 +1,16 @@ 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: :provider, case_sensitive: false } - validates :user_id, uniqueness: { scope: :provider } + validates :extern_uid, allow_blank: true, uniqueness: { scope: uniqueness_scope, case_sensitive: false } + validates :user_id, uniqueness: { scope: uniqueness_scope } before_save :ensure_normalized_extern_uid, if: :extern_uid_changed? after_destroy :clear_user_synced_attributes, if: :user_synced_attributes_metadata_from_provider? |