1 # frozen_string_literal: true
 
   4   class RepliesController < ApplicationController
 
   7     before_action :authorize_web
 
   8     before_action :set_locale
 
  10     authorize_resource :class => Message
 
  12     before_action :check_database_readable
 
  13     before_action :check_database_writable
 
  15     allow_thirdparty_images
 
  17     # Allow the user to reply to another message.
 
  19       message = Message.find(params[:message_id])
 
  21       if message.recipient == current_user
 
  22         message.update(:message_read => true)
 
  24         @message = Message.new(
 
  25           :recipient => message.sender,
 
  26           :title => "Re: #{message.title.sub(/^Re:\s*/, '')}",
 
  27           :body => "On #{message.sent_on} #{message.sender.display_name} wrote:\n\n#{message.body.gsub(/^/, '> ')}"
 
  30         @title = @message.title
 
  33       elsif message.sender == current_user
 
  34         @message = Message.new(
 
  35           :recipient => message.recipient,
 
  36           :title => "Re: #{message.title.sub(/^Re:\s*/, '')}",
 
  37           :body => "On #{message.sent_on} #{message.sender.display_name} wrote:\n\n#{message.body.gsub(/^/, '> ')}"
 
  40         @title = @message.title
 
  44         flash[:notice] = t ".wrong_user", :user => current_user.display_name
 
  45         redirect_to login_path(:referer => request.fullpath)
 
  47     rescue ActiveRecord::RecordNotFound
 
  48       @title = t "messages.no_such_message.title"
 
  49       render "messages/no_such_message", :status => :not_found