jam-cloud/web/app/controllers/music_sessions_controller.rb

57 lines
1.5 KiB
Ruby

class MusicSessionsController < ApplicationController
respond_to :html
def show
@music_session = MusicSession.find(params[:id])
render :layout => "web"
end
def session_info
@can_view = true
@music_session = MusicSession.find(params[:id])
unless current_user.nil?
invitations = Invitation.where("music_session_id = ? AND receiver_id = ?", @music_session.id, current_user.id)
has_invitation = !invitations.blank?
unless @music_session.scheduled_start.nil?
# session has not started yet
if @music_session.scheduled_start > Time.now.utc
if @music_session.creator.id == current_user.id || @music_session.open_rsvps || has_invitation
@can_view = true
else
@can_view = false
end
# session has started
else
if @music_session.musician_access || current_user.id == @music_session.creator.id
@can_view = true
else
if current_user.has_approved_rsvp(@music_session)
@can_view = true
else
@can_view = false
end
end
end
end
# run these 3 queries only if the user has access to the page
if @can_view
@approved_rsvps = @music_session.approved_rsvps
@open_slots = @music_session.open_slots
@pending_invitations = @music_session.pending_invitations
end
render :layout => "web"
else
render :layout => "web"
end
end
end