forked from e621ng/e621ng
[Admin] Ability to reowner posts for special conditions
This commit is contained in:
parent
82ec5b537f
commit
3db4c30721
38
app/controllers/admin/reowner_controller.rb
Normal file
38
app/controllers/admin/reowner_controller.rb
Normal file
@ -0,0 +1,38 @@
|
||||
module Admin
|
||||
class ReownerController < ApplicationController
|
||||
before_action :admin_only
|
||||
|
||||
def new
|
||||
end
|
||||
|
||||
def create
|
||||
@reowner_params = new_params
|
||||
@old_user = User.find_by_name_or_id(@reowner_params[:old_owner])
|
||||
@new_user = User.find_by_name_or_id(@reowner_params[:new_owner])
|
||||
query = @reowner_params[:search]
|
||||
unless @old_user && @new_user
|
||||
flash[:error] = "Old or new user failed to look up. Use !id for name to use an id."
|
||||
redirect_back fallback_location: new_admin_reowner_path
|
||||
return
|
||||
end
|
||||
ModAction.log(:post_owner_reassign)
|
||||
Post.tag_match("user:!#{@old_user.id} #{query}").limit(300).records.each do |p|
|
||||
p.do_not_version_changes = true
|
||||
p.update({uploader_id: @new_user.id})
|
||||
p.versions.where(updater_id: @old_user.id).each do |pv|
|
||||
pv.update_column(:updater_id, @new_user.id)
|
||||
pv.reload
|
||||
pv.__elasticsearch__.index_document
|
||||
end
|
||||
end
|
||||
flash[:notice] = "Post ownership reassigned"
|
||||
redirect_back fallback_location: new_admin_reowner_path
|
||||
end
|
||||
|
||||
private
|
||||
def new_params
|
||||
params.require(:reowner).permit([:old_owner, :search, :new_owner])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
21
app/views/admin/reowner/new.html.erb
Normal file
21
app/views/admin/reowner/new.html.erb
Normal file
@ -0,0 +1,21 @@
|
||||
<div>
|
||||
<h4>Change post ownership</h4>
|
||||
<%= form_tag(admin_reowner_path, :method => :post, :class => "simple_form") do %>
|
||||
<div class="input">
|
||||
<label>Old Owner</label>
|
||||
<%= text_field :reowner, :old_owner, placeholder: 'Use ! in front of an id for an id.', size: 40 %>
|
||||
</div>
|
||||
<div class="input">
|
||||
<label>New Owner</label>
|
||||
<%= text_field :reowner, :new_owner, placeholder: 'Use ! in front of an id for an id.', size: 40 %>
|
||||
</div>
|
||||
<div class="input">
|
||||
<label>Search Query</label>
|
||||
<%= text_field :reowner, :search, size: 40 %>
|
||||
</div>
|
||||
|
||||
<div class="input">
|
||||
<%= submit_tag "Submit" %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
@ -21,6 +21,7 @@ Rails.application.routes.draw do
|
||||
resource :alias_and_implication_import, :only => [:new, :create]
|
||||
resource :dashboard, :only => [:show]
|
||||
resources :exceptions, only: [:index, :show]
|
||||
resource :reowner, controller: 'reowner', only: [:new, :create]
|
||||
end
|
||||
resources :edit_histories
|
||||
namespace :moderator do
|
||||
|
Loading…
Reference in New Issue
Block a user