diaspora/app/controllers/report_controller.rb
2014-05-15 07:23:43 -04:00

43 lines
1.1 KiB
Ruby

class ReportController < ApplicationController
before_filter :authenticate_user!
before_filter :redirect_unless_admin, :except => [:create]
def index
@reports = Report.where(reviewed: false).all
end
def update
if report = Report.where(id: params[:id]).first
report.mark_as_reviewed
end
redirect_to :action => :index
end
def destroy
if report = Report.where(id: params[:id]).first
if report.destroy_reported_item
flash[:notice] = I18n.t 'report.status.destroyed'
else
flash[:error] = I18n.t 'report.status.failed'
end
else
flash[:error] = I18n.t 'report.status.failed'
end
redirect_to :action => :index
end
def create
if current_user.reports.create! report_params
flash.now[:notice] = I18n.t 'report.status.created'
render :nothing => true, :status => 200
else
flash.now[:error] = I18n.t 'report.status.failed'
render :nothing => true, :status => 409
end
end
private
def report_params
params.require(:report).permit(:post_id, :post_type, :text)
end
end