From 463430b3e8fac2131ad96d163c47fff71d045488 Mon Sep 17 00:00:00 2001 From: differentreality Date: Fri, 12 Jul 2013 11:06:16 +0300 Subject: [PATCH] Allow delete of registration only to admins (not organizers) --- .../admin/registrations_controller.rb | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/app/controllers/admin/registrations_controller.rb b/app/controllers/admin/registrations_controller.rb index f5d48f4b..b948e960 100644 --- a/app/controllers/admin/registrations_controller.rb +++ b/app/controllers/admin/registrations_controller.rb @@ -30,16 +30,20 @@ class Admin::RegistrationsController < ApplicationController end def delete - registration = @conference.registrations.where(:id => params[:id]).first - person = Person.where("id = ?", registration.person_id).first + if has_role?(current_user, "Admin") + registration = @conference.registrations.where(:id => params[:id]).first + person = Person.where("id = ?", registration.person_id).first - begin registration.destroy - redirect_to admin_conference_registrations_path - flash[:notice] = "Deleted registration for #{person.public_name} #{person.email}" - rescue Exception => e - Rails.logger.debug e.backtrace.join("\n") - redirect_to(admin_conference_registrations_path(@conference.short_title), :alert => 'Failed to delete registration:' + e.message) - return + begin registration.destroy + redirect_to admin_conference_registrations_path + flash[:notice] = "Deleted registration for #{person.public_name} #{person.email}" + rescue Exception => e + Rails.logger.debug e.backtrace.join("\n") + redirect_to(admin_conference_registrations_path(@conference.short_title), :alert => 'Failed to delete registration:' + e.message) + return + end + else + redirect_to(admin_conference_registrations_path(@conference.short_title), :alert => 'You must be an admin to delete a registration.') end end end \ No newline at end of file