Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett Walker <bwalker@gitlab.com>2017-10-27 17:32:48 +0300
committerBrett Walker <bwalker@gitlab.com>2017-10-27 17:32:48 +0300
commita2894b7ad2b26ff65d36b9c87b79c60ff4ddda59 (patch)
tree4565a0500c7316a826dc799cac5c7b65dabfc572
parent48851ff308032105234b781c61bfae8f312aced7 (diff)
use a delegate for `username` to be more future friendly
-rw-r--r--app/controllers/confirmations_controller.rb3
-rw-r--r--app/models/email.rb2
-rw-r--r--spec/models/email_spec.rb8
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