Files
mareike/app/Domains/UserManagement/Controllers/ResetPasswordController.php
2026-02-05 00:46:22 +01:00

40 lines
1.6 KiB
PHP

<?php
namespace App\Domains\UserManagement\Controllers;
use App\Domains\UserManagement\Actions\GenerateActivationToken\GenerateActivationTokenCommand;
use App\Domains\UserManagement\Actions\GenerateActivationToken\GenerateActivationTokenRequest;
use App\Domains\UserManagement\Actions\GenerateActivationToken\GenerateActivationTokenResponse;
use App\Domains\UserManagement\Actions\UserActivation\UserActivationCommand;
use App\Domains\UserManagement\Actions\UserActivation\UserActivationRequest;
use App\Providers\InertiaProvider;
use App\Scopes\CommonController;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class ResetPasswordController extends CommonController {
public function resetPasswordForm() {
$inertiaProvider = new InertiaProvider('UserManagement/ResetPassword', []);
return $inertiaProvider->render();
}
public function doResetPassword(Request $request) : JsonResponse {
$user = $this->users->findByUsername($request->get('email'));
if (null !== $user) {
$expirationDate = new \DateTime()->modify('+15 Minutes');
$resetAccountRequest = new GenerateActivationTokenRequest($user, $expirationDate);
$resetAccountCommand = new GenerateActivationTokenCommand($resetAccountRequest);
$resetAccountCommand->execute();
}
return response()->json([
'status' => 'success',
'message' => 'Falls deine E-Mail-Adresse gefunden wurde, erhältst du nun eine E-Mail mit weiteren Schritten zum Zurücksetzen deines Passwortes.'
]);
}
}