class MessagesController < ApplicationController before_filter :get_message, only: [:show, :edit, :update, :destroy] def index raise AccessError unless cuser end def show raise AccessError unless @message.can_show? cuser @message.read_by! cuser @messages = @message.thread end def new @message = Message.new raise AccessError unless @message.can_create? cuser case params[:id] when "User" @message.recipient = User.find(params[:id2]) when "Team" @message.recipient = Team.find(params[:id2]) when "Group" @message.recipient = Group.find(params[:id2]) else raise Error, "Illegible recipient" end @message.title = params[:title] end def create @message = Message.new(params[:message]) @message.sender = @message.sender_raw == "" ? cuser : cuser.active_teams.find(@message.sender_raw) raise AccessError unless @message.can_create? cuser if @message.save flash[:notice] = t(:message_create) redirect_to(@message) else render :new end end private def get_message @message = Message.find(params[:id]) end end