mirror of
https://github.com/mastodon/mastodon.git
synced 2025-02-04 00:11:54 +01:00
Fix /settings/applications
rejecting scopes parameter (#33798)
This commit is contained in:
parent
f79b96a5ef
commit
cf820b2eca
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
class Settings::ApplicationsController < Settings::BaseController
|
class Settings::ApplicationsController < Settings::BaseController
|
||||||
before_action :set_application, only: [:show, :update, :destroy, :regenerate]
|
before_action :set_application, only: [:show, :update, :destroy, :regenerate]
|
||||||
before_action :prepare_scopes, only: [:create, :update]
|
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@applications = current_user.applications.order(id: :desc).page(params[:page])
|
@applications = current_user.applications.order(id: :desc).page(params[:page])
|
||||||
@ -61,11 +60,9 @@ class Settings::ApplicationsController < Settings::BaseController
|
|||||||
|
|
||||||
def application_params
|
def application_params
|
||||||
params
|
params
|
||||||
.expect(doorkeeper_application: [:name, :redirect_uri, :scopes, :website])
|
.expect(doorkeeper_application: [:name, :redirect_uri, :website, scopes: []])
|
||||||
|
.tap do |params|
|
||||||
|
params[:scopes] = params[:scopes]&.join(' ')
|
||||||
end
|
end
|
||||||
|
|
||||||
def prepare_scopes
|
|
||||||
scopes = application_params.fetch(:doorkeeper_application, {}).fetch(:scopes, nil)
|
|
||||||
params[:doorkeeper_application][:scopes] = scopes.join(' ') if scopes.is_a? Array
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -38,6 +38,9 @@ RSpec.describe 'Settings applications page' do
|
|||||||
expect(page)
|
expect(page)
|
||||||
.to have_content(I18n.t('doorkeeper.applications.index.title'))
|
.to have_content(I18n.t('doorkeeper.applications.index.title'))
|
||||||
.and have_content('My new app')
|
.and have_content('My new app')
|
||||||
|
.and have_content('read')
|
||||||
|
.and have_content('write')
|
||||||
|
.and have_content('follow')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not save with invalid form values' do
|
it 'does not save with invalid form values' do
|
||||||
@ -73,10 +76,12 @@ RSpec.describe 'Settings applications page' do
|
|||||||
|
|
||||||
fill_in form_app_name_label,
|
fill_in form_app_name_label,
|
||||||
with: 'My new app name with a new value'
|
with: 'My new app name with a new value'
|
||||||
|
check 'push', id: :doorkeeper_application_scopes_push
|
||||||
submit_form
|
submit_form
|
||||||
|
|
||||||
expect(page)
|
expect(page)
|
||||||
.to have_content('My new app name with a new value')
|
.to have_content('My new app name with a new value')
|
||||||
|
.and have_checked_field('push', id: :doorkeeper_application_scopes_push)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not update with wrong values' do
|
it 'does not update with wrong values' do
|
||||||
|
Loading…
x
Reference in New Issue
Block a user