From 95f81b39f3c99795fe23eb3f09c6a8d6ebe84742 Mon Sep 17 00:00:00 2001 From: Arun Kumar Date: Thu, 7 Jul 2016 02:01:45 +0530 Subject: [PATCH 1/4] Redirect user to the login page while registering with ichain --- app/controllers/conference_registrations_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/conference_registrations_controller.rb b/app/controllers/conference_registrations_controller.rb index 95e5c447..d355c0ea 100644 --- a/app/controllers/conference_registrations_controller.rb +++ b/app/controllers/conference_registrations_controller.rb @@ -14,7 +14,7 @@ class ConferenceRegistrationsController < ApplicationController return # ichain does not allow us to create users during registration elsif (ENV['OSEM_ICHAIN_ENABLED'] == 'true') && !current_user - redirect_to root_path, alert: 'You need to sign in or sign up before continuing.' + redirect_to new_user_ichain_session_path, alert: 'You need to sign in or sign up before continuing.' return end From 59076c9dd7a44cc559c0541df87c8eac830b2273 Mon Sep 17 00:00:00 2001 From: Arun Kumar Date: Fri, 5 Aug 2016 22:23:26 +0530 Subject: [PATCH 2/4] Add ability for ichain users to login before registering for conference --- app/models/ability.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/models/ability.rb b/app/models/ability.rb index 76e1fc4c..26e0a96f 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -62,6 +62,12 @@ class Ability can [:new, :create], Event do |event| event.program.cfp_open? && event.new_record? end + + else + can [:new, :create], Registration do |registration| + conference = registration.conference + conference.registration_open? && registration.new_record? && !conference.registration_limit_exceeded? + end end end From 067f61364d9f469e1d4e25670319a48e4e366db6 Mon Sep 17 00:00:00 2001 From: Arun Kumar Date: Fri, 5 Aug 2016 22:55:46 +0530 Subject: [PATCH 3/4] Refactor code --- app/models/ability.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/models/ability.rb b/app/models/ability.rb index 26e0a96f..06e4b611 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -52,7 +52,7 @@ class Ability can [:new, :create], Registration do |registration| conference = registration.conference - conference.registration_open? && registration.new_record? && !conference.registration_limit_exceeded? + can_register?(conference) end can :show, Event do |event| @@ -66,7 +66,7 @@ class Ability else can [:new, :create], Registration do |registration| conference = registration.conference - conference.registration_open? && registration.new_record? && !conference.registration_limit_exceeded? + can_register?(conference) end end end @@ -243,3 +243,9 @@ class Ability end end end + +def can_register? conference + conference.registration_open? && + registration.new_record? && + !conference.registration_limit_exceeded? +end From a09b04a86533438ad830a34b12354930f62ec127 Mon Sep 17 00:00:00 2001 From: Arun Kumar Date: Tue, 9 Aug 2016 22:20:56 +0530 Subject: [PATCH 4/4] Replace unless else with if else and fix undefined method error --- app/models/ability.rb | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/app/models/ability.rb b/app/models/ability.rb index 06e4b611..955ee8a0 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -45,14 +45,20 @@ class Ability # can view Commercials of confirmed Events can :show, Commercial, commercialable_type: 'Event', commercialable_id: Event.where(state: 'confirmed').pluck(:id) can [:show, :create], User - unless ENV['OSEM_ICHAIN_ENABLED'] == 'true' + if ENV['OSEM_ICHAIN_ENABLED'] == 'true' + can [:new, :create], Registration do |registration| + conference = registration.conference + can_register?(conference, registration) + end + + else can :show, Registration do |registration| registration.new_record? end can [:new, :create], Registration do |registration| conference = registration.conference - can_register?(conference) + can_register?(conference, registration) end can :show, Event do |event| @@ -63,11 +69,6 @@ class Ability event.program.cfp_open? && event.new_record? end - else - can [:new, :create], Registration do |registration| - conference = registration.conference - can_register?(conference) - end end end @@ -244,7 +245,7 @@ class Ability end end -def can_register? conference +def can_register? conference, registration conference.registration_open? && registration.new_record? && !conference.registration_limit_exceeded?