From af7abc2b38b64f4a8989c070fcf671f0952b58b6 Mon Sep 17 00:00:00 2001 From: evazion Date: Sun, 16 Oct 2016 08:06:08 -0500 Subject: [PATCH 1/3] Add missing JSON/XML responses. * GET /bans.json * GET /bans/1.json * GET /ip_bans.json * POST /ip_bans.json * DELETE /ip_bans.json * GET /mod_actions.json * GET /posts/1/events.json * POST /saved_searches.json * DELETE /saved_searches/1.json * GET /super_voters.json --- app/controllers/bans_controller.rb | 3 +++ app/controllers/ip_bans_controller.rb | 10 ++++------ app/controllers/mod_actions_controller.rb | 3 +++ app/controllers/post_events_controller.rb | 2 ++ app/controllers/saved_searches_controller.rb | 2 ++ app/controllers/super_voters_controller.rb | 2 ++ 6 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/controllers/bans_controller.rb b/app/controllers/bans_controller.rb index efd5419a1..5b9d1372a 100644 --- a/app/controllers/bans_controller.rb +++ b/app/controllers/bans_controller.rb @@ -1,5 +1,6 @@ class BansController < ApplicationController before_filter :moderator_only, :except => [:show, :index] + respond_to :html, :xml, :json def new @ban = Ban.new(params[:ban]) @@ -12,10 +13,12 @@ class BansController < ApplicationController def index @search = Ban.search(params[:search]).order("id desc") @bans = @search.paginate(params[:page], :limit => params[:limit]) + respond_with(@bans) end def show @ban = Ban.find(params[:id]) + respond_with(@ban) end def create diff --git a/app/controllers/ip_bans_controller.rb b/app/controllers/ip_bans_controller.rb index 114a1d7e0..82e8689b7 100644 --- a/app/controllers/ip_bans_controller.rb +++ b/app/controllers/ip_bans_controller.rb @@ -1,4 +1,5 @@ class IpBansController < ApplicationController + respond_to :html, :xml, :json before_filter :moderator_only def new @@ -7,21 +8,18 @@ class IpBansController < ApplicationController def create @ip_ban = IpBan.create(params[:ip_ban]) - - if @ip_ban.errors.any? - render :action => "new" - else - redirect_to ip_bans_path - end + respond_with(@ip_ban) end def index @search = IpBan.search(params[:search]) @ip_bans = @search.order("id desc").paginate(params[:page], :limit => params[:limit]) + respond_with(@ip_bans) end def destroy @ip_ban = IpBan.find(params[:id]) @ip_ban.destroy + respond_with(@ip_ban) end end diff --git a/app/controllers/mod_actions_controller.rb b/app/controllers/mod_actions_controller.rb index 0533d7e34..625023df3 100644 --- a/app/controllers/mod_actions_controller.rb +++ b/app/controllers/mod_actions_controller.rb @@ -1,5 +1,8 @@ class ModActionsController < ApplicationController + respond_to :html, :xml, :json + def index @mod_actions = ModAction.search(params[:search]).order("id desc").paginate(params[:page], :limit => params[:limit]) + respond_with(@mod_actions) end end diff --git a/app/controllers/post_events_controller.rb b/app/controllers/post_events_controller.rb index 5c5cfb196..4431eb522 100644 --- a/app/controllers/post_events_controller.rb +++ b/app/controllers/post_events_controller.rb @@ -1,7 +1,9 @@ class PostEventsController < ApplicationController before_filter :member_only + respond_to :html, :xml, :json def index @events = PostEvent.find_for_post(params[:post_id]) + respond_with(@events) end end diff --git a/app/controllers/saved_searches_controller.rb b/app/controllers/saved_searches_controller.rb index b89d5836c..0822e213b 100644 --- a/app/controllers/saved_searches_controller.rb +++ b/app/controllers/saved_searches_controller.rb @@ -26,11 +26,13 @@ class SavedSearchesController < ApplicationController CurrentUser.disable_categorized_saved_searches = true CurrentUser.save end + respond_with(@saved_search) end def destroy @saved_search = saved_searches.find(params[:id]) @saved_search.destroy + respond_with(@saved_search) end def edit diff --git a/app/controllers/super_voters_controller.rb b/app/controllers/super_voters_controller.rb index a1d82bbb4..745834f4d 100644 --- a/app/controllers/super_voters_controller.rb +++ b/app/controllers/super_voters_controller.rb @@ -1,8 +1,10 @@ class SuperVotersController < ApplicationController before_filter :member_only + respond_to :html, :xml, :json def index @super_voters = SuperVoter.all + respond_with(@super_voters) end end From 7c6ba6a7c08ac1f1db6ea4bfb4d42b2b2567c622 Mon Sep 17 00:00:00 2001 From: evazion Date: Mon, 17 Oct 2016 04:28:26 -0500 Subject: [PATCH 2/3] Add /delayed_jobs.json. Leave out `handler` because it's sensitive. --- app/controllers/delayed_jobs_controller.rb | 2 ++ config/initializers/active_record_api_extensions.rb | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/app/controllers/delayed_jobs_controller.rb b/app/controllers/delayed_jobs_controller.rb index 5897ac68b..8f6a8755d 100644 --- a/app/controllers/delayed_jobs_controller.rb +++ b/app/controllers/delayed_jobs_controller.rb @@ -1,5 +1,7 @@ class DelayedJobsController < ApplicationController + respond_to :html, :xml, :json def index @delayed_jobs = Delayed::Job.order("created_at desc").paginate(params[:page], :limit => params[:limit]) + respond_with(@delayed_jobs) end end diff --git a/config/initializers/active_record_api_extensions.rb b/config/initializers/active_record_api_extensions.rb index 748149b73..1516fb181 100644 --- a/config/initializers/active_record_api_extensions.rb +++ b/config/initializers/active_record_api_extensions.rb @@ -26,6 +26,12 @@ module Danbooru end end +class Delayed::Job + def hidden_attributes + [:handler] + end +end + class ActiveRecord::Base include Danbooru::Extensions::ActiveRecordApi end From 7c8557dbacfd0c13f147b853d42c824ef14fb0af Mon Sep 17 00:00:00 2001 From: evazion Date: Mon, 17 Oct 2016 04:53:09 -0500 Subject: [PATCH 3/3] Make more pages publicly accessible to logged out users. * /artist_commentaries * /note_versions * /post_appeals * /post_flags * /posts/1/events * /super_voters --- app/controllers/artist_commentaries_controller.rb | 2 +- app/controllers/note_versions_controller.rb | 1 - app/controllers/post_appeals_controller.rb | 2 +- app/controllers/post_events_controller.rb | 1 - app/controllers/post_flags_controller.rb | 2 +- app/controllers/super_voters_controller.rb | 2 -- 6 files changed, 3 insertions(+), 7 deletions(-) diff --git a/app/controllers/artist_commentaries_controller.rb b/app/controllers/artist_commentaries_controller.rb index dddff7b07..51d338f3f 100644 --- a/app/controllers/artist_commentaries_controller.rb +++ b/app/controllers/artist_commentaries_controller.rb @@ -1,6 +1,6 @@ class ArtistCommentariesController < ApplicationController respond_to :html, :xml, :json, :js - before_filter :member_only + before_filter :member_only, :except => [:index] def index @commentaries = ArtistCommentary.search(params[:search]).order("artist_commentaries.id desc").paginate(params[:page], :limit => params[:limit]) diff --git a/app/controllers/note_versions_controller.rb b/app/controllers/note_versions_controller.rb index cfc9c8414..53fde4995 100644 --- a/app/controllers/note_versions_controller.rb +++ b/app/controllers/note_versions_controller.rb @@ -1,6 +1,5 @@ class NoteVersionsController < ApplicationController respond_to :html, :xml, :json - before_filter :member_only, :except => [:index, :show] def index @note_versions = NoteVersion.search(params[:search]).order("note_versions.id desc").paginate(params[:page], :limit => params[:limit]) diff --git a/app/controllers/post_appeals_controller.rb b/app/controllers/post_appeals_controller.rb index 073c52cb4..2f0bfd469 100644 --- a/app/controllers/post_appeals_controller.rb +++ b/app/controllers/post_appeals_controller.rb @@ -1,5 +1,5 @@ class PostAppealsController < ApplicationController - before_filter :member_only + before_filter :member_only, :except => [:index, :show] respond_to :html, :xml, :json, :js def new diff --git a/app/controllers/post_events_controller.rb b/app/controllers/post_events_controller.rb index 4431eb522..af5e9b255 100644 --- a/app/controllers/post_events_controller.rb +++ b/app/controllers/post_events_controller.rb @@ -1,5 +1,4 @@ class PostEventsController < ApplicationController - before_filter :member_only respond_to :html, :xml, :json def index diff --git a/app/controllers/post_flags_controller.rb b/app/controllers/post_flags_controller.rb index 0c99893ec..1649d5fc2 100644 --- a/app/controllers/post_flags_controller.rb +++ b/app/controllers/post_flags_controller.rb @@ -1,5 +1,5 @@ class PostFlagsController < ApplicationController - before_filter :member_only + before_filter :member_only, :except => [:index, :show] respond_to :html, :xml, :json, :js def new diff --git a/app/controllers/super_voters_controller.rb b/app/controllers/super_voters_controller.rb index 745834f4d..743e9fbbd 100644 --- a/app/controllers/super_voters_controller.rb +++ b/app/controllers/super_voters_controller.rb @@ -1,5 +1,4 @@ class SuperVotersController < ApplicationController - before_filter :member_only respond_to :html, :xml, :json def index @@ -7,4 +6,3 @@ class SuperVotersController < ApplicationController respond_with(@super_voters) end end -