[Users] Remove special casing for name change feedback

Part of old danbooru code, these feedbacks where never created on e6.
Also remove name change approve/reject controller actions, it's all automatic
This commit is contained in:
Earlopain 2022-01-22 16:20:49 +01:00
parent f32e03e360
commit 1c6b2dcba9
No known key found for this signature in database
GPG Key ID: 6CFB948E15246897
8 changed files with 12 additions and 136 deletions

View File

@ -9,18 +9,18 @@ class UserFeedbacksController < ApplicationController
end
def edit
@user_feedback = UserFeedback.visible.find(params[:id])
@user_feedback = UserFeedback.find(params[:id])
check_privilege(@user_feedback)
respond_with(@user_feedback)
end
def show
@user_feedback = UserFeedback.visible.find(params[:id])
@user_feedback = UserFeedback.find(params[:id])
respond_with(@user_feedback)
end
def index
@search = UserFeedback.visible.search(search_params)
@search = UserFeedback.search(search_params)
@user_feedbacks = @search.paginate(params[:page], :limit => params[:limit])
respond_with(@user_feedbacks)
end
@ -31,14 +31,14 @@ class UserFeedbacksController < ApplicationController
end
def update
@user_feedback = UserFeedback.visible.find(params[:id])
@user_feedback = UserFeedback.find(params[:id])
check_privilege(@user_feedback)
@user_feedback.update(user_feedback_params(:update))
respond_with(@user_feedback)
end
def destroy
@user_feedback = UserFeedback.visible.find(params[:id])
@user_feedback = UserFeedback.find(params[:id])
check_privilege(@user_feedback)
@user_feedback.destroy
redirect_back fallback_location: user_feedbacks_path

View File

@ -1,6 +1,6 @@
class UserNameChangeRequestsController < ApplicationController
before_action :member_only, :only => [:new, :create, :show]
before_action :admin_only, :only => [:index, :approve, :reject]
before_action :member_only, only: [:new, :create, :show]
before_action :admin_only, only: :index
respond_to :html, :json
def new
@ -12,10 +12,10 @@ class UserNameChangeRequestsController < ApplicationController
@change_request = UserNameChangeRequest.create(change_request_params)
if @change_request.errors.any?
render :action => "new"
render action: "new"
else
@change_request.approve!
redirect_to user_name_change_request_path(@change_request), :notice => "Your name has been changed"
redirect_to user_name_change_request_path(@change_request), notice: "Your name has been changed"
end
end
@ -26,22 +26,10 @@ class UserNameChangeRequestsController < ApplicationController
end
def index
@change_requests = UserNameChangeRequest.visible.order("id desc").paginate(params[:page], :limit => params[:limit])
@change_requests = UserNameChangeRequest.order("id desc").paginate(params[:page], limit: params[:limit])
respond_with(@change_requests)
end
def approve
@change_request = UserNameChangeRequest.find(params[:id])
@change_request.approve!
redirect_to user_name_change_request_path(@change_request), :notice => "Name change request approved"
end
def reject
@change_request = UserNameChangeRequest.find(params[:id])
@change_request.reject!(params[:reason])
redirect_to user_name_change_request_path(@change_request), :notice => "Name change request rejected"
end
private
def check_privileges!(change_request)

View File

@ -120,7 +120,7 @@ class User < ApplicationRecord
has_many :note_versions, :foreign_key => "updater_id"
has_many :dmails, -> {order("dmails.id desc")}, :foreign_key => "owner_id"
has_many :forum_posts, -> {order("forum_posts.created_at, forum_posts.id")}, :foreign_key => "creator_id"
has_many :user_name_change_requests, -> {visible.order("user_name_change_requests.id desc")}
has_many :user_name_change_requests, -> { order("user_name_change_requests.id desc") }
has_many :post_sets, -> {order(name: :asc)}, foreign_key: :creator_id
has_many :favorites, -> {order(id: :desc)}
belongs_to :avatar, class_name: 'Post', optional: true
@ -788,16 +788,6 @@ class User < ApplicationRecord
where("level = ?", Levels::ADMIN)
end
# UserDeletion#rename renames deleted users to `user_<1234>~`. Tildes
# are appended if the username is taken.
def deleted
where("name ~ 'user_[0-9]+~*'")
end
def undeleted
where("name !~ 'user_[0-9]+~*'")
end
def with_email(email)
if email.blank?
where("FALSE")

View File

@ -35,15 +35,6 @@ class UserFeedback < ApplicationRecord
where("user_id = ?", user_id)
end
def visible(viewer = CurrentUser.user)
if viewer.is_admin?
all
else
# joins(:user).merge(User.undeleted).or(where("body !~ 'Name changed from [^\s:]+ to [^\s:]+'"))
joins(:user).where.not("users.name ~ 'user_[0-9]+~*' AND user_feedback.body ~ 'Name changed from [^\s:]+ to [^\s:]+'")
end
end
def default_order
order(created_at: :desc)
end

View File

@ -21,16 +21,6 @@ class UserNameChangeRequest < ApplicationRecord
where(:status => "approved")
end
def self.visible(viewer = CurrentUser.user)
if viewer.is_admin?
all
elsif viewer.is_member?
joins(:user).merge(User.undeleted).where("user_name_change_requests.status = 'approved' OR user_name_change_requests.user_id = ?", viewer.id)
else
none
end
end
def rejected?
status == "rejected"
end
@ -43,25 +33,14 @@ class UserNameChangeRequest < ApplicationRecord
status == "pending"
end
def feedback
UserFeedback.for_user(user_id).order("id desc")
end
def approve!
update(:status => "approved", :approver_id => CurrentUser.user.id)
user.update_attribute(:name, desired_name)
body = "Your name change request has been approved. Be sure to log in with your new user name."
Dmail.create_automated(:title => "Name change request approved", :body => body, :to_id => user_id)
# UserFeedback.create(:user_id => user_id, :category => "neutral", :body => "Name changed from #{original_name} to #{desired_name}")
ModAction.log(:user_name_change, {user_id: user.id, old_name: original_name, new_name: desired_name})
end
def reject!(reason)
update(:status => "rejected", :rejection_reason => reason)
body = "Your name change request has been rejected for the following reason: #{rejection_reason}"
Dmail.create_automated(:title => "Name change request rejected", :body => body, :to_id => user_id)
end
def not_limited
return true if skip_limited_validation == true
if UserNameChangeRequest.where("user_id = ? and created_at >= ?", CurrentUser.user.id, 1.week.ago).exists?

View File

@ -39,49 +39,6 @@
</tr>
</tbody>
</table>
<% if @change_request.pending? && CurrentUser.user.is_admin? %>
<section>
<h2>Feedback</h2>
<ul>
<% @change_request.feedback.each do |feedback| %>
<li class="feedback-category-<%= feedback.category %>">
<p><%= feedback.body %></p>
<p class="info">Submitted by <%= link_to_user feedback.creator.name %> <%= time_ago_in_words_tagged feedback.created_at %></p>
</li>
<% end %>
</ul>
</section>
<section>
<h2>Statistics</h2>
<ul>
<li>Level: <%= @change_request.user.level_string %></li>
<li>Uploads: <%= link_to @change_request.user.post_upload_count, posts_path("user:#{@change_request.user.name}") %></li>
<li>Updates: <%= link_to @change_request.user.post_update_count, post_versions_path(:search => {:updater_id => @change_request.user.id}) %></li>
<li>Notes: <%= link_to @change_request.user.note_update_count, note_versions_path(:search => {:updater_id => @change_request.user.id}) %></li>
<li>Favorites: <%= @change_request.user.favorite_count %></li>
</ul>
</section>
<section>
<h2>Options</h2>
<%= form_tag(approve_user_name_change_request_path(@change_request)) do %>
<%= submit_tag "Approve" %>
<% end %>
<%= form_tag(reject_user_name_change_request_path(@change_request), :class => "simple_form") do %>
<div class="input">
<label>Reason</label>
<%= text_field_tag "reason" %>
</div>
<div class="input">
<%= submit_tag "Reject" %>
</div>
<% end %>
</section>
<% end %>
</div>
</div>

View File

@ -348,12 +348,7 @@ Rails.application.routes.draw do
get :search
end
end
resources :user_name_change_requests do
member do
post :approve
post :reject
end
end
resources :user_name_change_requests
resource :user_revert, :only => [:new, :create]
resources :wiki_pages do
member do

View File

@ -55,30 +55,6 @@ class UserNameChangeRequestTest < ActiveSupport::TestCase
end
end
context "rejecting a request" do
setup do
@change_request = UserNameChangeRequest.create(
:user_id => @requester.id,
:original_name => @requester.name,
:status => "pending",
:desired_name => "abc"
)
CurrentUser.user = @admin
end
should "create a dmail" do
assert_difference("Dmail.count", 1) do
@change_request.reject!("msg")
end
end
should "preserve the username" do
@change_request.reject!("msg")
@requester.reload
assert_not_equal("abc", @requester.name)
end
end
context "creating a new request" do
should "not validate if the desired name already exists" do
assert_difference("UserNameChangeRequest.count", 0) do