mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Invite user route
This commit is contained in:
parent
a6282cee56
commit
1780db52bd
@ -623,8 +623,8 @@ class UserController extends BaseController
|
||||
* Detach an existing user to a company.
|
||||
*
|
||||
* @OA\Post(
|
||||
* path="/api/v1/users/{user}/reconfirm",
|
||||
* operationId="reconfirmUser",
|
||||
* path="/api/v1/users/{user}/invite",
|
||||
* operationId="inviteUser",
|
||||
* tags={"users"},
|
||||
* summary="Reconfirm an existing user to a company",
|
||||
* description="Reconfirm an existing user from a company",
|
||||
@ -666,18 +666,10 @@ class UserController extends BaseController
|
||||
* @param User $user
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function reconfirm(ReconfirmUserRequest $request, User $user)
|
||||
public function invite(ReconfirmUserRequest $request, User $user)
|
||||
{
|
||||
$user->confirmation_code = $this->createDbHash($user->company()->db);
|
||||
$user->save();
|
||||
|
||||
$nmo = new NinjaMailerObject;
|
||||
$nmo->mailable = new NinjaMailer((new VerifyUserObject($user, $user->company()))->build());
|
||||
$nmo->company = $user->company();
|
||||
$nmo->to_user = $user;
|
||||
$nmo->settings = $user->company->settings;
|
||||
|
||||
NinjaMailerJob::dispatch($nmo);
|
||||
$user->service()->invite($user->company());
|
||||
|
||||
return response()->json(['message' => ctrans('texts.confirmation_resent')], 200);
|
||||
|
||||
|
@ -46,24 +46,10 @@ class SendVerificationNotification implements ShouldQueue
|
||||
*/
|
||||
public function handle($event)
|
||||
{
|
||||
|
||||
MultiDB::setDB($event->company->db);
|
||||
|
||||
try {
|
||||
$event->user->service()->invite($event->company);
|
||||
|
||||
$nmo = new NinjaMailerObject;
|
||||
$nmo->mailable = new NinjaMailer((new VerifyUserObject($event->user, $event->company))->build());
|
||||
$nmo->company = $event->company;
|
||||
$nmo->to_user = $event->user;
|
||||
$nmo->settings = $event->company->settings;
|
||||
|
||||
NinjaMailerJob::dispatch($nmo);
|
||||
|
||||
// $event->user->notify(new VerifyUser($event->user, $event->company));
|
||||
|
||||
Ninja::registerNinjaUser($event->user);
|
||||
|
||||
} catch (Exception $e) {
|
||||
nlog("I couldn't send the email " . $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ use App\Jobs\Mail\NinjaMailerObject;
|
||||
use App\Mail\Admin\ResetPasswordObject;
|
||||
use App\Models\Presenters\UserPresenter;
|
||||
use App\Notifications\ResetPasswordNotification;
|
||||
use App\Services\User\UserService;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
use App\Utils\Traits\UserSessionAttributes;
|
||||
use App\Utils\Traits\UserSettings;
|
||||
@ -398,4 +399,9 @@ class User extends Authenticatable implements MustVerifyEmail
|
||||
|
||||
//$this->notify(new ResetPasswordNotification($token));
|
||||
}
|
||||
|
||||
public function service() :User
|
||||
{
|
||||
return new UserService($this);
|
||||
}
|
||||
}
|
||||
|
52
app/Services/User/UserService.php
Normal file
52
app/Services/User/UserService.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
namespace App\Services\User;
|
||||
|
||||
use App\Jobs\Mail\NinjaMailer;
|
||||
use App\Jobs\Mail\NinjaMailerJob;
|
||||
use App\Jobs\Mail\NinjaMailerObject;
|
||||
use App\Mail\Admin\VerifyUserObject;
|
||||
use App\Models\Company;
|
||||
use App\Models\User;
|
||||
use App\Utils\Ninja;
|
||||
|
||||
class UserService
|
||||
{
|
||||
|
||||
public $user;
|
||||
|
||||
public function __construct(User $user)
|
||||
{
|
||||
$this->user = $user;
|
||||
}
|
||||
|
||||
public function invite($company)
|
||||
{
|
||||
try {
|
||||
|
||||
$nmo = new NinjaMailerO5bject;
|
||||
$nmo->mailable = new NinjaMailer((new VerifyUserObject($this->user, $company))->build());
|
||||
$nmo->company = $company;
|
||||
$nmo->to_user = $this->user;
|
||||
$nmo->settings = $company->settings;
|
||||
|
||||
NinjaMailerJob::dispatch($nmo);
|
||||
|
||||
Ninja::registerNinjaUser($this->user);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
nlog("I couldn't send the verification email " . $e->getMessage());
|
||||
}
|
||||
|
||||
return $this->user;
|
||||
}
|
||||
}
|
@ -164,7 +164,7 @@ Route::group(['middleware' => ['api_db', 'token_auth', 'locale'], 'prefix' => 'a
|
||||
Route::delete('users/{user}/detach_from_company', 'UserController@detach')->middleware('password_protected');
|
||||
|
||||
Route::post('users/bulk', 'UserController@bulk')->name('users.bulk')->middleware('password_protected');
|
||||
Route::post('/user/{user}/reconfirm', 'UserController@reconfirm')->middleware('password_protected');
|
||||
Route::post('/users/{user}/invite', 'UserController@invite')->middleware('password_protected');
|
||||
|
||||
Route::resource('webhooks', 'WebhookController');
|
||||
Route::post('webhooks/bulk', 'WebhookController@bulk')->name('webhooks.bulk');
|
||||
|
Loading…
x
Reference in New Issue
Block a user