mirror of
https://github.com/discourse/discourse.git
synced 2024-11-22 17:06:31 -06:00
FEATURE: Add API scope for /logs route (#24956)
Adds an API scope for accessing Logster's routes. This one is a bit different than routes from core because it is mounted like ``` mount Logster::Web => "/logs" ``` and doesn't have all the route info a traditional rails app/engine does.
This commit is contained in:
parent
4c8bc34475
commit
3380d283c9
@ -234,6 +234,11 @@ class ApiKeyScope < ActiveRecord::Base
|
||||
actions: %w[users#create groups#index],
|
||||
},
|
||||
},
|
||||
logs: {
|
||||
messages: {
|
||||
actions: [Logster::Web],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
parse_resources!(mappings)
|
||||
@ -291,6 +296,11 @@ class ApiKeyScope < ActiveRecord::Base
|
||||
if actions.include?(action) && api_supported_path && !excluded_paths.include?(path)
|
||||
urls << "#{engine_mount_path}#{path} (#{route.verb})"
|
||||
end
|
||||
|
||||
if actions.include?(Logster::Web)
|
||||
urls << "/logs/messages.json (POST)"
|
||||
urls << "/logs/show/:id.json (GET)"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -5017,6 +5017,8 @@ en:
|
||||
commenting: Necessary for the WP Discourse plugin commenting features.
|
||||
discourse_connect: Necessary for the WP Discourse plugin DiscourseConnect features.
|
||||
utilities: Necessary if you use WP Discourse plugin Utilities.
|
||||
logs:
|
||||
messages: List messages from /logs or get a specific log message.
|
||||
|
||||
web_hooks:
|
||||
title: "Webhooks"
|
||||
|
@ -440,6 +440,7 @@ RSpec.describe Admin::ApiController do
|
||||
"search",
|
||||
"invites",
|
||||
"wordpress",
|
||||
"logs",
|
||||
)
|
||||
|
||||
topic_routes = [
|
||||
@ -479,6 +480,10 @@ RSpec.describe Admin::ApiController do
|
||||
"/u/:username/feature-topic (PUT)",
|
||||
"/u/:username/clear-featured-topic (PUT)",
|
||||
)
|
||||
|
||||
expect(
|
||||
scopes["logs"].any? { |h| h["urls"].include?("/logs/messages.json (POST)") },
|
||||
).to be_truthy
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user