summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Reigel <mail@koffeinfrei.org>2017-05-23 22:47:05 +0200
committerAlexis Reigel <mail@koffeinfrei.org>2017-05-24 22:29:59 +0200
commit2f277d10ac574fbe6b19d22799bd32daf49de56b (patch)
tree7b2a2f645ec74850e1bd33ee8b97ee5bea7cc9ab
parentdfc2542f55953815f703d743635d6faf2523d1a1 (diff)
downloadgitlab-ce-2f277d10ac574fbe6b19d22799bd32daf49de56b.tar.gz
ensure rss token on read
we do this on attribute read since migrating all existing users is not a feasible solution.
-rw-r--r--app/models/user.rb9
-rw-r--r--spec/models/user_spec.rb8
2 files changed, 13 insertions, 4 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index a356419a796..cf3914568a6 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -153,7 +153,7 @@ class User < ActiveRecord::Base
before_validation :set_public_email, if: ->(user) { user.public_email_changed? }
after_update :update_emails_with_primary_email, if: ->(user) { user.email_changed? }
- before_save :ensure_authentication_token, :ensure_incoming_email_token, :ensure_rss_token
+ before_save :ensure_authentication_token, :ensure_incoming_email_token
before_save :ensure_external_user_rights
after_save :ensure_namespace_correct
after_initialize :set_projects_limit
@@ -1005,6 +1005,13 @@ class User < ActiveRecord::Base
save
end
+ # each existing user needs to have an `rss_token`.
+ # we do this on read since migrating all existing users is not a feasible
+ # solution.
+ def rss_token
+ ensure_rss_token!
+ end
+
protected
# override, from Devise::Validatable
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index ca2b872729f..aabdac4bb75 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -448,9 +448,11 @@ describe User, models: true do
end
describe 'rss token' do
- it 'has rss token' do
- user = create(:user)
- expect(user.rss_token).not_to be_blank
+ it 'ensures an rss token on read' do
+ user = create(:user, rss_token: nil)
+ rss_token = user.rss_token
+ expect(rss_token).not_to be_blank
+ expect(user.reload.rss_token).to eq rss_token
end
end