Allow setting react_ap flag on accounts table

This commit is contained in:
David Bomba 2022-06-16 15:58:11 +10:00
parent 9032bc6fa7
commit 77d0dd8ae4
4 changed files with 80 additions and 0 deletions

View File

@ -12,9 +12,11 @@
namespace App\Http\Controllers;
use App\Http\Requests\Account\CreateAccountRequest;
use App\Http\Requests\Account\UpdateAccountRequest;
use App\Jobs\Account\CreateAccount;
use App\Models\Account;
use App\Models\CompanyUser;
use App\Transformers\AccountTransformer;
use App\Transformers\CompanyUserTransformer;
use App\Utils\TruthSource;
use Illuminate\Foundation\Bus\DispatchesJobs;
@ -157,4 +159,17 @@ class AccountController extends BaseController
return $this->listResponse($ct);
}
public function update(UpdateAccountRequest $request, Account $account)
{
$account->fill($request->all());
$account->save();
$this->entity_type = Account::class;
$this->entity_transformer = AccountTransformer::class;
return $this->itemResponse($account);
}
}

View File

@ -0,0 +1,53 @@
<?php
/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\Http\Requests\Account;
use App\Http\Requests\Request;
use App\Http\ValidationRules\Account\BlackListRule;
use App\Http\ValidationRules\Account\EmailBlackListRule;
use App\Http\ValidationRules\NewUniqueUserRule;
use App\Utils\Ninja;
class UpdateAccountRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return auth()->user()->isAdmin() || auth()->user()->isOwner();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'set_react_as_default_ap' => 'required|bail|bool'
];
}
protected function prepareForValidation()
{
$input = $this->all();
$cleaned_input = array_intersect_key( $input, array_flip(['set_react_as_default_ap']));
$this->replace($cleaned_input);
}
}

View File

@ -11,6 +11,7 @@
namespace App\Models;
use App\Exceptions\ModelNotFoundException;
use App\Jobs\Mail\NinjaMailerJob;
use App\Jobs\Mail\NinjaMailerObject;
use App\Mail\Ninja\EmailQuotaExceeded;
@ -472,4 +473,14 @@ class Account extends BaseModel
}
public function resolveRouteBinding($value, $field = null)
{
if (is_numeric($value)) {
throw new ModelNotFoundException("Record with value {$value} not found");
}
return $this
->where('id', $this->decodePrimaryKey($value))->firstOrFail();
}
}

View File

@ -24,6 +24,7 @@ Route::group(['middleware' => ['throttle:10,1','api_secret_check','email_db']],
});
Route::group(['middleware' => ['throttle:100,1', 'api_db', 'token_auth', 'locale'], 'prefix' => 'api/v1', 'as' => 'api.'], function () {
Route::put('accounts/{account}', 'AccountController@update')->name('account.update');
Route::post('check_subdomain', 'SubdomainController@index')->name('check_subdomain');
Route::get('ping', 'PingController@index')->name('ping');
Route::get('health_check', 'PingController@health')->name('health_check');