Use load_and_authorize_resource in versions controlller

This commit is contained in:
Nishanth Vijayan 2016-08-15 14:21:33 +05:30
parent 71c8dd4127
commit 58a3913735
2 changed files with 9 additions and 16 deletions

View file

@ -1,26 +1,23 @@
module Admin
class VersionsController < Admin::BaseController
skip_authorization_check
load_and_authorize_resource class: PaperTrail::Version
def index
authorize! :index, PaperTrail::Version.new(item_type: 'User')
@conf_ids_for_organizer = current_user.is_admin? ? Conference.pluck(:id) : Conference.with_role(:organizer, current_user).pluck(:id)
@conference_id = params[:conference_id].to_i unless params[:conference_id].nil?
if @conference_id.nil?
@versions = PaperTrail::Version.where(["conference_id IN (?) OR item_type = 'User'", @conf_ids_for_organizer])
elsif !Conference.exists?(id: @conference_id)
unless @conference_id.nil? || Conference.exists?(id: @conference_id)
redirect_to admin_revision_history_path, error: "Conference with ID #{@conference_id} does not exist!"
return
else
authorize! :index, PaperTrail::Version.new(conference_id: @conference_id)
@versions = PaperTrail::Version.where(conference_id: @conference_id)
end
return unless @conference_id.present?
authorize! :index, PaperTrail::Version.new(conference_id: @conference_id)
@versions = @versions.where(conference_id: @conference_id)
end
def revert_attribute
@version = PaperTrail::Version.find(params[:id])
authorize! :revert_attribute, @version
if params[:attribute] && @version.changeset.reject{ |_, values| values[0].blank? && values[1].blank? }.keys.include?(params[:attribute])
if @version.item[params[:attribute]] == @version.changeset[params[:attribute]][0]
flash[:error] = 'The item is already in the state that you are trying to revert it back to'
@ -42,9 +39,6 @@ module Admin
end
def revert_object
@version = PaperTrail::Version.find(params[:id])
authorize! :revert_object, @version
if @version.event != 'create'
if @version.reify.save
flash[:notice] = 'The selected change was successfully reverted'