]> git.openstreetmap.org Git - rails.git/blob - app/controllers/redactions_controller.rb
Merge remote-tracking branch 'upstream/pull/1801'
[rails.git] / app / controllers / redactions_controller.rb
1 class RedactionsController < ApplicationController
2   layout "site"
3
4   before_action :authorize_web
5   before_action :set_locale
6   before_action :require_user, :only => [:new, :create, :edit, :update, :destroy]
7   before_action :require_moderator, :only => [:new, :create, :edit, :update, :destroy]
8   before_action :lookup_redaction, :only => [:show, :edit, :update, :destroy]
9   before_action :check_database_readable
10   before_action :check_database_writable, :only => [:create, :update, :destroy]
11
12   def index
13     @redactions = Redaction.order(:id)
14   end
15
16   def new
17     @redaction = Redaction.new
18   end
19
20   def create
21     @redaction = Redaction.new
22     @redaction.user = current_user
23     @redaction.title = params[:redaction][:title]
24     @redaction.description = params[:redaction][:description]
25     # note that the description format will default to 'markdown'
26
27     if @redaction.save
28       flash[:notice] = t("redaction.create.flash")
29       redirect_to @redaction
30     else
31       render :action => "new"
32     end
33   end
34
35   def show; end
36
37   def edit; end
38
39   def update
40     # note - don't update the user ID
41     @redaction.title = params[:redaction][:title]
42     @redaction.description = params[:redaction][:description]
43
44     if @redaction.save
45       flash[:notice] = t("redaction.update.flash")
46       redirect_to @redaction
47     else
48       render :action => "edit"
49     end
50   end
51
52   def destroy
53     if @redaction.old_nodes.empty? &&
54        @redaction.old_ways.empty? &&
55        @redaction.old_relations.empty?
56       if @redaction.destroy
57         flash[:notice] = t("redaction.destroy.flash")
58         redirect_to :redactions
59       else
60         flash[:error] = t("redaction.destroy.error")
61         redirect_to @redaction
62       end
63     else
64       flash[:error] = t("redaction.destroy.not_empty")
65       redirect_to @redaction
66     end
67   end
68
69   private
70
71   def lookup_redaction
72     @redaction = Redaction.find(params[:id])
73   end
74 end