From 1f325c19dab4725b2a9e9a981128bcf9dac6b074 Mon Sep 17 00:00:00 2001 From: evazion Date: Wed, 11 Jan 2017 13:07:39 -0600 Subject: [PATCH] Show previous usernames to members; link to actual change requests. --- app/models/user.rb | 1 + app/models/user_name_change_request.rb | 10 ++++++++++ app/presenters/user_presenter.rb | 4 ++-- app/views/users/_statistics.html.erb | 4 ++-- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 9bccf557b..4c9627f5a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -89,6 +89,7 @@ class User < ActiveRecord::Base has_many :dmails, lambda {order("dmails.id desc")}, :foreign_key => "owner_id" has_many :saved_searches has_many :forum_posts, lambda {order("forum_posts.created_at")}, :foreign_key => "creator_id" + has_many :user_name_change_requests, lambda {visible.order("user_name_change_requests.created_at desc")} belongs_to :inviter, :class_name => "User" after_update :create_mod_action accepts_nested_attributes_for :dmail_filter diff --git a/app/models/user_name_change_request.rb b/app/models/user_name_change_request.rb index 633d94f17..ec95a1f87 100644 --- a/app/models/user_name_change_request.rb +++ b/app/models/user_name_change_request.rb @@ -18,6 +18,16 @@ class UserNameChangeRequest < ActiveRecord::Base def self.approved where(:status => "approved") end + + def self.visible + if CurrentUser.is_admin? + all + elsif CurrentUser.is_member? + where("user_name_change_requests.status = 'approved' OR user_name_change_requests.user_id = ?", CurrentUser.id) + else + none + end + end def rejected? status == "rejected" diff --git a/app/presenters/user_presenter.rb b/app/presenters/user_presenter.rb index e034d3e6a..f35413a06 100644 --- a/app/presenters/user_presenter.rb +++ b/app/presenters/user_presenter.rb @@ -233,7 +233,7 @@ class UserPresenter end end - def previous_names - UserNameChangeRequest.approved.where("user_id = ?", user.id).map(&:original_name).join(", ") + def previous_names(template) + user.user_name_change_requests.map { |req| template.link_to req.original_name, req }.join(", ").html_safe end end diff --git a/app/views/users/_statistics.html.erb b/app/views/users/_statistics.html.erb index a488a3472..8c33d9e23 100644 --- a/app/views/users/_statistics.html.erb +++ b/app/views/users/_statistics.html.erb @@ -138,10 +138,10 @@ - <% if CurrentUser.is_moderator? && presenter.previous_names.present? %> + <% if presenter.previous_names(self).present? %> Previous Names - <%= presenter.previous_names %> + <%= presenter.previous_names(self) %> <% end %>