Files
danbooru/app/controllers/moderator/post/posts_controller.rb
evazion 34057b25e1 mod actions: record the subject of the mod action.
Add a polymorphic `subject` field that records the subject of the mod
action. The subject is the post, user, comment, artist, etc the mod
action is for.

* The subject for the user ban and unban actions is the user, not the ban itself.
* The subject for the user feedback update and deletion actions is the user,
  not the feedback itself.
* The subject for the post undeletion action is the post, not the approval itself.
* The subject for the move favorites action is the source post where the
  favorites were moved from, not the destination post where the favorites
  were moved to.
* The subject for the post permanent delete action is nil, because the
  post itself is hard deleted.
* When a post is permanently deleted, all mod actions related to the
  post are deleted as well.
2022-09-25 04:04:28 -05:00

43 lines
970 B
Ruby

# frozen_string_literal: true
module Moderator
module Post
class PostsController < ApplicationController
respond_to :html, :json, :xml, :js
def confirm_move_favorites
@post = ::Post.find(params[:id])
end
def move_favorites
@post = authorize ::Post.find(params[:id])
if params[:commit] == "Submit"
@post.give_favorites_to_parent
end
redirect_to(post_path(@post))
end
def expunge
@post = authorize ::Post.find(params[:id])
@post.expunge!(CurrentUser.user)
end
def ban
@post = authorize ::Post.find(params[:id])
@post.ban!(CurrentUser.user)
flash[:notice] = "Post was banned"
respond_with(@post)
end
def unban
@post = authorize ::Post.find(params[:id])
@post.unban!(CurrentUser.user)
flash[:notice] = "Post was unbanned"
respond_with(@post)
end
end
end
end