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|
# almost sensible ordering available. this would be much nicer if
# global (SVN-style) versioning were used - then that would be
# unambiguous.
- elements.sort! do |a, b|
- if a.timestamp == b.timestamp
- a.version <=> b.version
- else
- a.timestamp <=> b.timestamp
- end
- end
+ elements.sort_by! { |e| [e.timestamp, e.version] }
# generate an output element for each operation. note: we avoid looking
# at the history because it is simpler - but it would be more correct to