DEV: Add fallback route with 404 error

This commit is contained in:
Peter Bouda 2024-10-24 09:14:29 +01:00
parent 4b8d576b13
commit 7e358fb98b
4 changed files with 28 additions and 4 deletions

View file

@ -0,0 +1,25 @@
# frozen_string_literal: true
require "scimitar"
module Scim
class ScimV2::ErrorsController < Scimitar::ApplicationController
protect_from_forgery with: :null_session
# We check for the plugin here manually as we do not inherit from Discourse's ApplicationController
# and do not have access to requires_plugin
before_action do
if plugin = Discourse.plugins_by_name[DiscourseScim::PLUGIN_NAME]
raise PluginDisabled.new if !plugin.enabled?
elsif Rails.env.test?
raise "Required plugin '#{DiscourseScim::PLUGIN_NAME}' not found. The string passed to requires_plugin should match the plugin's name at the top of plugin.rb"
else
Rails.logger.warn("Required plugin '#{DiscourseScim::PLUGIN_NAME}' not found")
end
end
def not_found
handle_scim_error(Scimitar::NotFoundError.new(params["path"]))
end
end
end

View file

@ -25,7 +25,7 @@ module Scim
end end
def storage_scope def storage_scope
Group.all # Or e.g. "User.where(is_deleted: false)" - whatever base scope you require Group.all
end end
end end
end end

View file

@ -25,7 +25,7 @@ module Scim
end end
def storage_scope def storage_scope
User.all # Or e.g. "User.where(is_deleted: false)" - whatever base scope you require User.all
end end
end end
end end

View file

@ -20,7 +20,6 @@ Discourse::Application.routes.draw {
patch 'Groups/:id', to: 'groups#update' patch 'Groups/:id', to: 'groups#update'
delete 'Groups/:id', to: 'groups#destroy' delete 'Groups/:id', to: 'groups#destroy'
# TODO: Add catchall that sends a not available get '*path', to: 'errors#not_found'
#get '*unmatched_route', to: 'application#raise_not_found!'
end end
} }