diff --git a/app/Http/Controllers/LoginController.php b/app/Http/Controllers/LoginController.php index cebe3e7..b02a5f1 100644 --- a/app/Http/Controllers/LoginController.php +++ b/app/Http/Controllers/LoginController.php @@ -160,15 +160,41 @@ class LoginController extends Controller public function mailPassword(Request $request) { $email = filter_var($request->email, FILTER_SANITIZE_STRING); $user = User::where('email', $email)->first(); - if ($user) { - $user->password_token = Str::uuid(); - $user->save(); - $settings = Settings::find(1); - Mail::to($email)->send(new PasswordReset($user, $settings)); - return redirect()->route('login')->with('success', 'Un mail de réinitialisation de votre mot de passe vous a été envoyé(e).'); - } else { - return back()->withInput($request->only('email'))->withErrors("Le mail que vous avez entré n'est pas enregistré dans nos services."); + if (!$user) { + try { + $cpcConnect = new CPCConnection(config('crm.CRM_PLATOS_WSDL'), config('crm.WS_SERVCE_LOGIN'), config('crm.WS_SERVCE_PASSWORD')); + $cpcConnect->connect(); + try { + $oCrmUser = $cpcConnect->getUserByEmail($email); + + $user = User::create([ + 'crm_id' => $oCrmUser->iId, + 'civility' => $oCrmUser->zCivilite, + 'firstname' => $oCrmUser->zPrenom, + 'lastname' => $oCrmUser->zNom, + 'birth_date' => $oCrmUser->zDateNaissance, + 'email' => $oCrmUser->zEmail, + 'password' => Hash::make("MOTDEPASSE"), + 'address' => $oCrmUser->zAdresse1, + 'address2' => $oCrmUser->zAdresse2, + 'town' => $oCrmUser->zVille, + 'postal_code' => $oCrmUser->zCodePostal, + 'country' => "France", // TODO : Voir pour changer le default + 'email_verified' => 1 + ]); + } catch (Exception $e) { + return back()->withInput($request->only('email'))->withErrors("Le mail que vous avez entré n'est pas enregistré dans nos services."); + } + } catch (Exception $e) { + return back()->withErrors("Une erreur est survenue, veuillez réessayer plus tard."); + } } + + $user->password_token = Str::uuid(); + $user->save(); + $settings = Settings::find(1); + Mail::to($email)->send(new PasswordReset($user, $settings)); + return redirect()->route('login')->with('success', 'Un mail de réinitialisation de votre mot de passe vous a été envoyé(e).'); } public function changePassword(Request $request) {