Commit dd09a19a authored by James Edwards-Jones's avatar James Edwards-Jones

Auth::User classes refactor adds should_save?

parent 795cd7f9
......@@ -31,15 +31,11 @@ module Gitlab
self.class.find_by_uid_and_provider(auth_hash.uid, auth_hash.provider)
end
def changed?
override :should_save?
def should_save?
gl_user.changed? || gl_user.identities.any?(&:changed?)
end
override :omniauth_should_save?
def omniauth_should_save?
changed? && super
end
def block_after_signup?
ldap_config.block_auto_created_users
end
......
......@@ -69,14 +69,14 @@ module Gitlab
end
def find_and_update!
save if omniauth_should_save?
save if should_save?
gl_user
end
protected
def omniauth_should_save?
def should_save?
true
end
......
......@@ -29,17 +29,13 @@ module Gitlab
user
end
def changed?
override :should_save?
def should_save?
return true unless gl_user
gl_user.changed? || gl_user.identities.any?(&:changed?)
end
override :omniauth_should_save?
def omniauth_should_save?
changed? && super
end
protected
def saml_config
......
......@@ -25,20 +25,20 @@ describe Gitlab::Auth::LDAP::User do
OmniAuth::AuthHash.new(uid: 'uid=John Smith,ou=People,dc=example,dc=com', provider: 'ldapmain', info: info_upper_case)
end
describe '#changed?' do
describe '#should_save?' do
it "marks existing ldap user as changed" do
create(:omniauth_user, extern_uid: 'uid=John Smith,ou=People,dc=example,dc=com', provider: 'ldapmain')
expect(ldap_user.changed?).to be_truthy
expect(ldap_user.should_save?).to be_truthy
end
it "marks existing non-ldap user if the email matches as changed" do
create(:user, email: 'john@example.com')
expect(ldap_user.changed?).to be_truthy
expect(ldap_user.should_save?).to be_truthy
end
it "does not mark existing ldap user as changed" do
create(:omniauth_user, email: 'john@example.com', extern_uid: 'uid=john smith,ou=people,dc=example,dc=com', provider: 'ldapmain')
expect(ldap_user.changed?).to be_falsey
expect(ldap_user.should_save?).to be_falsey
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment