Request a booth only when cfp is open

This commit is contained in:
nasia 2017-08-16 11:42:57 +03:00 committed by Stella Rouzi
parent 8b5ebb3dd7
commit 703813248d
3 changed files with 13 additions and 1 deletions

View file

@ -75,7 +75,9 @@ class Ability
can [:new, :create], Payment, user_id: user.id
can [:index, :show], PhysicalTicket, user: user
can [:new, :create], Booth
can [:new, :create], Booth do |booth|
booth.new_record? && booth.conference.program.cfps.for_booths.try(:open?)
end
can [:edit, :update, :index, :show], Booth do |booth|
booth.users.include?(user)

View file

@ -94,6 +94,15 @@ class Cfp < ActiveRecord::Base
find_by(cfp_type: 'tracks')
end
##
# Finds the cfp for booths if it exists
#
# ====Returns
# * +Cfp+ -> The cfp with type 'booths'
def self.for_booths
find_by(cfp_type: 'booths')
end
private
def before_end_of_conference

View file

@ -8,6 +8,7 @@ describe BoothsController do
context 'user is signed in with submitter role' do
before :each do
create(:cfp, program: conference.program, cfp_type: 'booths')
sign_in booth.submitter
end