From 866e58b5bf07be2e094a2e65ce7289159b749923 Mon Sep 17 00:00:00 2001 From: Ana Date: Wed, 4 May 2016 23:46:52 +0200 Subject: [PATCH] registration_limit check moved to ability file --- app/controllers/conference_registrations_controller.rb | 7 +------ app/models/ability.rb | 6 ++++-- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/app/controllers/conference_registrations_controller.rb b/app/controllers/conference_registrations_controller.rb index 6bf79202..b304f7d7 100644 --- a/app/controllers/conference_registrations_controller.rb +++ b/app/controllers/conference_registrations_controller.rb @@ -6,7 +6,7 @@ class ConferenceRegistrationsController < ApplicationController def new @registration = Registration.new(conference_id: @conference.id) - authorize! :new, @registration + authorize! :new, @registration, message: "Sorry, you can not register for #{@conference.title}. Registration limit exceeded or the registration is not open." # Redirect to registration edit when user is already registered if @conference.user_registered?(current_user) @@ -23,11 +23,6 @@ class ConferenceRegistrationsController < ApplicationController redirect_to edit_conference_conference_registrations_path(@conference.short_title) end - if @conference.registration_limit_exceeded? - redirect_to root_path, error: "Sorry, registration limit exceeded for #{@conference.title}" - return - end - # @user variable needs to be set so that _sign_up_form_embedded works properly @user = @registration.build_user end diff --git a/app/models/ability.rb b/app/models/ability.rb index 2c1914be..fb48808a 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -51,7 +51,8 @@ class Ability end can [:new, :create], Registration do |registration| - registration.conference.registration_open? && registration.new_record? + conference = registration.conference + conference.registration_open? && registration.new_record? && !conference.registration_limit_exceeded? end can :show, Event do |event| @@ -74,7 +75,8 @@ class Ability can :manage, Registration, user_id: user.id can [:new, :create], Registration do |registration| - registration.conference.registration_open? + conference = registration.conference + conference.registration_open? && !conference.registration_limit_exceeded? end can :index, Ticket