diff options
author | Brett Walker <bwalker@gitlab.com> | 2017-10-27 16:32:48 +0200 |
---|---|---|
committer | Brett Walker <bwalker@gitlab.com> | 2017-10-27 16:32:48 +0200 |
commit | a2894b7ad2b26ff65d36b9c87b79c60ff4ddda59 (patch) | |
tree | 4565a0500c7316a826dc799cac5c7b65dabfc572 | |
parent | 48851ff308032105234b781c61bfae8f312aced7 (diff) | |
download | gitlab-ce-a2894b7ad2b26ff65d36b9c87b79c60ff4ddda59.tar.gz |
use a delegate for `username` to be more future friendly
-rw-r--r-- | app/controllers/confirmations_controller.rb | 3 | ||||
-rw-r--r-- | app/models/email.rb | 2 | ||||
-rw-r--r-- | spec/models/email_spec.rb | 8 |
3 files changed, 11 insertions, 2 deletions
diff --git a/app/controllers/confirmations_controller.rb b/app/controllers/confirmations_controller.rb index 8ca01a6e2c6..bc0948cd3fb 100644 --- a/app/controllers/confirmations_controller.rb +++ b/app/controllers/confirmations_controller.rb @@ -15,8 +15,7 @@ class ConfirmationsController < Devise::ConfirmationsController if signed_in?(:user) after_sign_in(resource) else - username = (resource_name == :email ? resource.user.username : resource.username) - Gitlab::AppLogger.info("Email Confirmed: username=#{username} email=#{resource.email} ip=#{request.remote_ip}") + Gitlab::AppLogger.info("Email Confirmed: username=#{resource.username} email=#{resource.email} ip=#{request.remote_ip}") flash[:notice] += " Please sign in." new_session_path(:user) end diff --git a/app/models/email.rb b/app/models/email.rb index 384f38f2db7..2da8b050149 100644 --- a/app/models/email.rb +++ b/app/models/email.rb @@ -14,6 +14,8 @@ class Email < ActiveRecord::Base devise :confirmable self.reconfirmable = false # currently email can't be changed, no need to reconfirm + delegate :username, to: :user + def email=(value) write_attribute(:email, value.downcase.strip) end diff --git a/spec/models/email_spec.rb b/spec/models/email_spec.rb index b32dd31ae6d..4676612ad52 100644 --- a/spec/models/email_spec.rb +++ b/spec/models/email_spec.rb @@ -40,4 +40,12 @@ describe Email do expect(user.emails.confirmed.count).to eq 1 end end + + describe 'delegation' do + let(:user) { create(:user) } + + it 'delegates to :user' do + expect(build(:email, user: user).username).to eq user.username + end + end end |