before_action :check_api_writable, :only => [:create, :update, :upload, :subscribe, :unsubscribe]
before_action :check_api_readable, :except => [:create, :update, :upload, :download, :query, :subscribe, :unsubscribe]
+ before_action :setup_user_auth, :only => [:show]
before_action :authorize, :only => [:create, :update, :upload, :close, :subscribe, :unsubscribe]
authorize_resource
# return anything about the nodes, ways and relations in the changeset.
def show
@changeset = Changeset.find(params[:id])
- @include_discussion = params[:include_discussion].presence
+ if params[:include_discussion].presence
+ @comments = @changeset.comments
+ @comments = @comments.unscope(:where => :visible) if params[:show_hidden_comments].presence && can?(:restore, ChangesetComment)
+ @comments = @comments.includes(:author)
+ end
render "changeset"
respond_to do |format|
cs.save_with_tags!
# Subscribe user to changeset comments
- cs.subscribers << current_user
+ cs.subscribe(current_user)
render :plain => cs.id.to_s
end
# Find the changeset and check it is valid
changeset = Changeset.find(id)
- raise OSM::APIChangesetAlreadySubscribedError, changeset if changeset.subscribers.exists?(current_user.id)
+ raise OSM::APIChangesetAlreadySubscribedError, changeset if changeset.subscribed?(current_user)
# Add the subscriber
- changeset.subscribers << current_user
+ changeset.subscribe(current_user)
# Return a copy of the updated changeset
@changeset = changeset
# Find the changeset and check it is valid
changeset = Changeset.find(id)
- raise OSM::APIChangesetNotSubscribedError, changeset unless changeset.subscribers.exists?(current_user.id)
+ raise OSM::APIChangesetNotSubscribedError, changeset unless changeset.subscribed?(current_user)
# Remove the subscriber
- changeset.subscribers.delete(current_user)
+ changeset.unsubscribe(current_user)
# Return a copy of the updated changeset
@changeset = changeset