50 lines
1.5 KiB
Ruby
50 lines
1.5 KiB
Ruby
module Messages
|
|
class RepliesController < ApplicationController
|
|
layout "site"
|
|
|
|
before_action :authorize_web
|
|
before_action :set_locale
|
|
|
|
authorize_resource :class => Message
|
|
|
|
before_action :check_database_readable
|
|
before_action :check_database_writable
|
|
|
|
allow_thirdparty_images
|
|
|
|
# Allow the user to reply to another message.
|
|
def new
|
|
message = Message.find(params[:message_id])
|
|
|
|
if message.recipient == current_user
|
|
message.update(:message_read => true)
|
|
|
|
@message = Message.new(
|
|
:recipient => message.sender,
|
|
:title => "Re: #{message.title.sub(/^Re:\s*/, '')}",
|
|
:body => "On #{message.sent_on} #{message.sender.display_name} wrote:\n\n#{message.body.gsub(/^/, '> ')}"
|
|
)
|
|
|
|
@title = @message.title
|
|
|
|
render "messages/new"
|
|
elsif message.sender == current_user
|
|
@message = Message.new(
|
|
:recipient => message.recipient,
|
|
:title => "Re: #{message.title.sub(/^Re:\s*/, '')}",
|
|
:body => "On #{message.sent_on} #{message.sender.display_name} wrote:\n\n#{message.body.gsub(/^/, '> ')}"
|
|
)
|
|
|
|
@title = @message.title
|
|
|
|
render "messages/new"
|
|
else
|
|
flash[:notice] = t ".wrong_user", :user => current_user.display_name
|
|
redirect_to login_path(:referer => request.fullpath)
|
|
end
|
|
rescue ActiveRecord::RecordNotFound
|
|
@title = t "messages.no_such_message.title"
|
|
render "messages/no_such_message", :status => :not_found
|
|
end
|
|
end
|
|
end
|