X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/1f7bd08f4a8a6a626a0c1d7ed60f2dcd6a6801e8..38b9f8f7927f09b32a94df87d1264f568f620480:/app/controllers/changeset_controller.rb diff --git a/app/controllers/changeset_controller.rb b/app/controllers/changeset_controller.rb index 646ba2fa3..eaa87df7b 100644 --- a/app/controllers/changeset_controller.rb +++ b/app/controllers/changeset_controller.rb @@ -5,18 +5,18 @@ class ChangesetController < ApplicationController require 'xml/libxml' skip_before_filter :verify_authenticity_token, :except => [:list] - before_filter :authorize_web, :only => [:list, :feed] - before_filter :set_locale, :only => [:list, :feed] + before_filter :authorize_web, :only => [:list, :feed, :comments_feed] + before_filter :set_locale, :only => [:list, :feed, :comments_feed] before_filter :authorize, :only => [:create, :update, :delete, :upload, :include, :close, :comment, :subscribe, :unsubscribe, :hide_comment, :unhide_comment] before_filter :require_moderator, :only => [:hide_comment, :unhide_comment] before_filter :require_allow_write_api, :only => [:create, :update, :delete, :upload, :include, :close, :comment, :subscribe, :unsubscribe, :hide_comment, :unhide_comment] before_filter :require_public_data, :only => [:create, :update, :delete, :upload, :include, :close, :comment, :subscribe, :unsubscribe] before_filter :check_api_writable, :only => [:create, :update, :delete, :upload, :include, :comment, :subscribe, :unsubscribe, :hide_comment, :unhide_comment] before_filter :check_api_readable, :except => [:create, :update, :delete, :upload, :download, :query, :list, :feed, :comment, :subscribe, :unsubscribe, :comments_feed] - before_filter(:only => [:list, :feed]) { |c| c.check_database_readable(true) } + before_filter(:only => [:list, :feed, :comments_feed]) { |c| c.check_database_readable(true) } after_filter :compress_output - around_filter :api_call_handle_error, :except => [:list, :feed] - around_filter :web_timeout, :only => [:list, :feed] + around_filter :api_call_handle_error, :except => [:list, :feed, :comments_feed] + around_filter :web_timeout, :only => [:list, :feed, :comments_feed] # Helper methods for checking consistency include ConsistencyValidations @@ -336,12 +336,12 @@ class ChangesetController < ApplicationController # Notify current subscribers of the new comment changeset.subscribers.each do |user| if @user != user - Notifier.changeset_comment_notification(comment, user).deliver + Notifier.changeset_comment_notification(comment, user).deliver_now end end # Add the commenter to the subscribers if necessary - changeset.subscribers << @user unless changeset.subscribers.exists?(@user) + changeset.subscribers << @user unless changeset.subscribers.exists?(@user.id) # Return a copy of the updated changeset render :text => changeset.to_xml.to_s, :content_type => "text/xml" @@ -359,7 +359,7 @@ class ChangesetController < ApplicationController # Find the changeset and check it is valid changeset = Changeset.find(id) raise OSM::APIChangesetNotYetClosedError.new(changeset) if changeset.is_open? - raise OSM::APIChangesetAlreadySubscribedError.new(changeset) if changeset.subscribers.exists?(@user) + raise OSM::APIChangesetAlreadySubscribedError.new(changeset) if changeset.subscribers.exists?(@user.id) # Add the subscriber changeset.subscribers << @user @@ -380,7 +380,7 @@ class ChangesetController < ApplicationController # Find the changeset and check it is valid changeset = Changeset.find(id) raise OSM::APIChangesetNotYetClosedError.new(changeset) if changeset.is_open? - raise OSM::APIChangesetNotSubscribedError.new(changeset) unless changeset.subscribers.exists?(@user) + raise OSM::APIChangesetNotSubscribedError.new(changeset) unless changeset.subscribers.exists?(@user.id) # Remove the subscriber changeset.subscribers.delete(@user)