Auth::User classes refactor adds should_save?
This commit is contained in:
parent
795cd7f952
commit
dd09a19ad6
4 changed files with 10 additions and 18 deletions
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue