]> git.openstreetmap.org Git - rails.git/blob - app/controllers/messages/replies_controller.rb
Use resourceful route for message reply
[rails.git] / app / controllers / messages / replies_controller.rb
1 module Messages
2   class RepliesController < ApplicationController
3     layout "site"
4
5     before_action :authorize_web
6     before_action :set_locale
7
8     authorize_resource :class => Message
9
10     before_action :check_database_readable
11     before_action :check_database_writable
12
13     allow_thirdparty_images
14
15     # Allow the user to reply to another message.
16     def new
17       message = Message.find(params[:message_id])
18
19       if message.recipient == current_user
20         message.update(:message_read => true)
21
22         @message = Message.new(
23           :recipient => message.sender,
24           :title => "Re: #{message.title.sub(/^Re:\s*/, '')}",
25           :body => "On #{message.sent_on} #{message.sender.display_name} wrote:\n\n#{message.body.gsub(/^/, '> ')}"
26         )
27
28         @title = @message.title
29
30         render "messages/new"
31       elsif message.sender == current_user
32         @message = Message.new(
33           :recipient => message.recipient,
34           :title => "Re: #{message.title.sub(/^Re:\s*/, '')}",
35           :body => "On #{message.sent_on} #{message.sender.display_name} wrote:\n\n#{message.body.gsub(/^/, '> ')}"
36         )
37
38         @title = @message.title
39
40         render "messages/new"
41       else
42         flash[:notice] = t ".wrong_user", :user => current_user.display_name
43         redirect_to login_path(:referer => request.fullpath)
44       end
45     rescue ActiveRecord::RecordNotFound
46       @title = t "messages.no_such_message.title"
47       render "messages/no_such_message", :status => :not_found
48     end
49   end
50 end