journalduhacker/app/controllers/messages_controller.rb

89 lines
2 KiB
Ruby
Raw Normal View History

class MessagesController < ApplicationController
2012-07-04 03:48:01 +02:00
before_filter :require_logged_in_user
before_filter :find_message, :only => [ :show, :destroy, :keep_as_new ]
def index
@cur_url = "/messages"
@title = "Messages"
2012-07-04 03:48:01 +02:00
@new_message = Message.new
if params[:to]
@new_message.recipient_username = params[:to]
end
2012-07-04 03:48:01 +02:00
end
def create
@cur_url = "/messages"
@title = "Messages"
2012-07-04 03:48:01 +02:00
@new_message = Message.new(params[:message])
@new_message.author_user_id = @user.id
if @new_message.save
flash.now[:success] = "Your message has been sent to " <<
2012-07-04 05:31:42 +02:00
@new_message.recipient.username.to_s << "."
2012-07-04 03:48:01 +02:00
@new_message = Message.new
end
render :action => "index"
end
def show
@cur_url = "/messages"
@title = @message.subject
2012-07-04 03:48:01 +02:00
@new_message = Message.new
@new_message.recipient_username = (@message.author_user_id == @user.id ?
@message.recipient.username : @message.author.username)
if @message.recipient_user_id == @user.id
@message.has_been_read = true
@message.save
end
if @message.subject.match(/^re:/i)
@new_message.subject = @message.subject
else
@new_message.subject = "Re: #{@message.subject}"
end
end
def destroy
if @message.author_user_id == @user.id
@message.deleted_by_author = true
end
if @message.recipient_user_id == @user.id
@message.deleted_by_recipient = true
end
@message.save
2012-07-04 05:31:42 +02:00
flash[:success] = "Deleted message."
2012-07-04 03:48:01 +02:00
return redirect_to "/messages"
end
def keep_as_new
@message.has_been_read = false
@message.save
return redirect_to "/messages"
end
private
def find_message
if @message = Message.find_by_short_id(params[:message_id ] || params[:id])
if (@message.author_user_id == @user.id ||
2012-07-04 03:48:01 +02:00
@message.recipient_user_id == @user.id)
return true
2012-07-04 03:48:01 +02:00
end
end
flash[:error] = "Could not find message."
redirect_to "/messages"
return false
2012-07-04 03:48:01 +02:00
end
end