FEATURE: An API key scope for editing posts. (#13441)

This commit is contained in:
Roman Rizzi 2021-06-18 12:53:10 -03:00 committed by GitHub
parent 5b17902263
commit 4afd8f9bdf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 2 deletions

View File

@ -33,6 +33,9 @@ class ApiKeyScope < ActiveRecord::Base
},
wordpress: { actions: %w[topics#wordpress], params: %i[topic_id] }
},
posts: {
edit: { actions: %w[posts#update], params: %i[id] }
},
users: {
bookmarks: { actions: %w[users#bookmarks], params: %i[username] },
sync_sso: { actions: %w[admin/users#sync_sso], params: %i[sso sig] },
@ -84,7 +87,9 @@ class ApiKeyScope < ActiveRecord::Base
excluded_paths = %w[/new-topic /new-message /exception]
memo.tap do |m|
m << path if actions.include?(action) && api_supported_path && !excluded_paths.include?(path)
if actions.include?(action) && api_supported_path && !excluded_paths.include?(path)
m << "#{path} (#{route.verb})"
end
end
end
end

View File

@ -4026,6 +4026,8 @@ en:
write: Create a new topic or post to an existing one.
read_lists: Read topic lists like top, new, latest, etc. RSS is also supported.
wordpress: Necessary for the WordPress wp-discourse plugin to work.
posts:
edit: Edit any post or a specific one.
users:
bookmarks: List user bookmarks. It returns bookmark reminders when using the ICS format.
sync_sso: Synchronize a user using DiscourseConnect.

View File

@ -222,7 +222,7 @@ describe Admin::ApiController do
scopes = response.parsed_body['scopes']
expect(scopes.keys).to contain_exactly('topics', 'users', 'email')
expect(scopes.keys).to contain_exactly('topics', 'users', 'email', 'posts')
end
end
end