middleware('guest'); } public function index() { return view('front.basic.register-crm'); } public function register(Request $request) { $civility = $request->civility; $lastname = filter_var($request->lastname, FILTER_SANITIZE_STRING); $firstname = filter_var($request->firstname, FILTER_SANITIZE_STRING); $birthDate = $request->birth_date; $email = filter_var($request->email, FILTER_SANITIZE_EMAIL); $password = $request->password; $address = filter_var($request->address, FILTER_SANITIZE_STRING); $address2 = $request->address2 !== null ? filter_var($request->address2, FILTER_SANITIZE_STRING) : null; $town = filter_var($request->town, FILTER_SANITIZE_STRING); $postalCode = filter_var($request->postal_code, FILTER_SANITIZE_STRING); $country = filter_var($request->country, FILTER_SANITIZE_STRING); $news = $request->news !== null ? 1 : 0; $tokenMail = Str::uuid(); $request->validate([ 'lastname' => 'required|string|max:255', 'firstname' => 'required|string|max:255', 'birth_date' => 'required|date|before_or_equal:' . Carbon::now()->subYears(18)->toDateString(), 'email' => 'required|string|email|max:255|unique:users|confirmed', 'password' => 'required|string|min:8|confirmed', 'address' => 'required|string|max:255', 'address2' => 'max:255', 'town' => 'required|string|max:255', 'postal_code' => 'required|string|max:255', 'country' => 'required|string|max:255', 'reglement' => 'accepted', ]); $crmId = null; try { $cpcConnect = new CPCConnection(config('crm.CRM_PLATOS_WSDL'), config('crm.WS_SERVCE_LOGIN'), config('crm.WS_SERVCE_PASSWORD')); $cpcConnect->connect(); try { $oCrmUser = new CPCUser(); $oCrmUser->zCivilite = $civility; $oCrmUser->zNom = $lastname ; $oCrmUser->zPrenom = $firstname ; $oCrmUser->zDateNaissance = $birthDate; $oCrmUser->zVille = $town ; $oCrmUser->zCodePostal = $postalCode ; $oCrmUser->addField ("pays", FIELDTYPE_TEXT, "", $country); $oCrmUser->zLogin = $email ; $oCrmUser->zEmail = $email; // En attendant la mise à jour de la crm, on envoi un mot de passe bidon $oCrmUser->zPassword = "MOTDEPASSE"; if($news == 1) $oCrmUser->iInscritNewLetter = $news ; $oCrmUser->iId = $cpcConnect->createUser($oCrmUser, 0); $crmId = $oCrmUser->iId; } catch (Exception $e) { return redirect()->back() ->withInput($request->only("lastname","firstname","birth_date","email","username", "address", "address2", "town", "postal_code", "country")) ->withErrors("Un compte utilisateur est déjà associé à votre email. Modifiez votre email ou connectez vous avec ce compte. " . $e->getMessage()); } } catch (Exception $e) { return redirect()->back() ->withInput($request->only("lastname","firstname","birth_date","email","username", "address", "address2", "town", "postal_code", "country")) ->withErrors("Une erreur est survenue, merci de recommencer."); } $user = User::create([ 'crm_id' => $crmId, 'civility' => $civility, 'firstname' => $firstname, 'lastname' => $lastname, 'birth_date' => $birthDate, 'email' => $email, 'password' => Hash::make($password), 'address' => $address, 'address2' => $address2, 'town' => $town, 'postal_code' => $postalCode, 'country' => $country, 'email_verify_token' => $tokenMail, ]); Mail::to($email)->send(new VerifyEmail($user)); return view('front.basic.register-after'); } }