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? %>