diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2015-12-23 09:29:04 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2015-12-23 09:37:01 +0100 |
commit | 76f7e80455f1f5b5b052c7d8caf519713b016eea (patch) | |
tree | 2d2039982ce4727a8966c4a4984c84012b830e60 | |
parent | 3b61dc47ec377b857b66f9b2a81a183276163f4e (diff) | |
download | gitlab-ce-76f7e80455f1f5b5b052c7d8caf519713b016eea.tar.gz |
Fix method that ensures authentication token
Until now, `ensure_#{token_filed_name}` method didn't persist new token in database.
This closes #4235.
-rw-r--r-- | app/models/concerns/token_authenticatable.rb | 8 | ||||
-rw-r--r-- | spec/models/concerns/token_authenticatable_spec.rb | 4 |
2 files changed, 6 insertions, 6 deletions
diff --git a/app/models/concerns/token_authenticatable.rb b/app/models/concerns/token_authenticatable.rb index 488ff8c31b7..e84c5804cf4 100644 --- a/app/models/concerns/token_authenticatable.rb +++ b/app/models/concerns/token_authenticatable.rb @@ -17,12 +17,8 @@ module TokenAuthenticatable end define_method("ensure_#{token_field}") do - current_token = read_attribute(token_field) - if current_token.blank? - write_attribute(token_field, generate_token_for(token_field)) - else - current_token - end + send("reset_#{token_field}!") if read_attribute(token_field).blank? + read_attribute(token_field) end define_method("reset_#{token_field}!") do diff --git a/spec/models/concerns/token_authenticatable_spec.rb b/spec/models/concerns/token_authenticatable_spec.rb index a9b0b64e5de..07ec3a80e60 100644 --- a/spec/models/concerns/token_authenticatable_spec.rb +++ b/spec/models/concerns/token_authenticatable_spec.rb @@ -35,6 +35,10 @@ describe ApplicationSetting, 'TokenAuthenticatable' do it { is_expected.to be_a String } it { is_expected.to_not be_blank } + + it 'should persist new token' do + expect(subject).to eq described_class.current[token_field] + end end end |