Add reason param to POST /api/v1/accounts REST API (#12064)
				
					
				
			For approval-required registrations mode
This commit is contained in:
		
							parent
							
								
									9a1be333b8
								
							
						
					
					
						commit
						eb83d6256e
					
				
					 3 changed files with 14 additions and 4 deletions
				
			
		| 
						 | 
					@ -78,7 +78,7 @@ class Api::V1::AccountsController < Api::BaseController
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def account_params
 | 
					  def account_params
 | 
				
			||||||
    params.permit(:username, :email, :password, :agreement, :locale)
 | 
					    params.permit(:username, :email, :password, :agreement, :locale, :reason)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def check_enabled_registrations
 | 
					  def check_enabled_registrations
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,9 +4,10 @@ class AppSignUpService < BaseService
 | 
				
			||||||
  def call(app, params)
 | 
					  def call(app, params)
 | 
				
			||||||
    return unless allowed_registrations?
 | 
					    return unless allowed_registrations?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    user_params    = params.slice(:email, :password, :agreement, :locale)
 | 
					    user_params           = params.slice(:email, :password, :agreement, :locale)
 | 
				
			||||||
    account_params = params.slice(:username)
 | 
					    account_params        = params.slice(:username)
 | 
				
			||||||
    user           = User.create!(user_params.merge(created_by_application: app, password_confirmation: user_params[:password], account_attributes: account_params))
 | 
					    invite_request_params = { text: params[:reason] }
 | 
				
			||||||
 | 
					    user                  = User.create!(user_params.merge(created_by_application: app, password_confirmation: user_params[:password], account_attributes: account_params, invite_request_attributes: invite_request_params))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Doorkeeper::AccessToken.create!(application: app,
 | 
					    Doorkeeper::AccessToken.create!(application: app,
 | 
				
			||||||
                                    resource_owner_id: user.id,
 | 
					                                    resource_owner_id: user.id,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,6 +38,15 @@ RSpec.describe AppSignUpService, type: :service do
 | 
				
			||||||
      user = User.find_by(id: access_token.resource_owner_id)
 | 
					      user = User.find_by(id: access_token.resource_owner_id)
 | 
				
			||||||
      expect(user).to_not be_nil
 | 
					      expect(user).to_not be_nil
 | 
				
			||||||
      expect(user.account).to_not be_nil
 | 
					      expect(user.account).to_not be_nil
 | 
				
			||||||
 | 
					      expect(user.invite_request).to be_nil
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it 'creates an account with invite request text' do
 | 
				
			||||||
 | 
					      access_token = subject.call(app, good_params.merge(reason: 'Foo bar'))
 | 
				
			||||||
 | 
					      expect(access_token).to_not be_nil
 | 
				
			||||||
 | 
					      user = User.find_by(id: access_token.resource_owner_id)
 | 
				
			||||||
 | 
					      expect(user).to_not be_nil
 | 
				
			||||||
 | 
					      expect(user.invite_request&.text).to eq 'Foo bar'
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue