aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/speakers_controller.rb
blob: db90dbe7af473f23c680c4581ad2b2525807bfe0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class SpeakersController < ApplicationController
  before_filter :init_and_check_permissions
  
  def create
    # check permissions
    raise ActiveRecord::RecordNotFound unless params[:speaker] && params[:speaker][:user_id]
    @user = User.find(params[:speaker][:user_id])
    
    flash[:notice] = t("views.speakers.added") if @discussion.add_speaker(@user)
    redirect_to @discussion
  end
  
  def destroy
    @speaker = Speaker.find(params[:id])
    @speaker.destroy
    flash[:notice] = @speaker.user == current_user ? t("inboxes.discussions.leaved") : t("inboxes.speakers.removed")
    redirect_to @discussion.speakers.any? && @discussion.can_participate?(current_user) ? @discussion : discussions_url
  end
  
  private
  
  def init_and_check_permissions
    @discussion = Discussion.find(params[:discussion_id])
    redirect_to discussions_url, :notice => t("inboxes.discussions.can_not_participate") unless @discussion.can_participate?(current_user)
  end
end