From: Louis Jeckel Date: Thu, 29 Oct 2020 12:06:12 +0000 (+0100) Subject: discover registration X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=ee1e314219fc90289e5f0604d406d521a28f272f;p=psq.git discover registration --- diff --git a/app/Http/Controllers/DiscoverController.php b/app/Http/Controllers/DiscoverController.php new file mode 100644 index 0000000..eeb31a2 --- /dev/null +++ b/app/Http/Controllers/DiscoverController.php @@ -0,0 +1,84 @@ +middleware('guest'); + } + + /** + * @return \Illuminate\View\View + */ + public function showForm() + { + return view('auth.discover'); + } + + public function register(Request $request) + { + $this->validator($request->all())->validate(); + + $data = $request->all(); + + /** @var User $user */ + $user = User::query()->create( + [ + 'email' => $data['email'], + 'first_name' => $data['first_name'], + 'last_name' => $data['last_name'], + 'employer' => $data['employer'], + 'reg_complete' => false, + 'type' => User::TYPE_DISCOVER, + 'self_registered' => true, + ] + ); + + //If users requested a trial period + \Notification::route('mail', config('app.emails.subscriptions')) + ->notify(new NewTrialUser($user)); + + + $user->sendEmailFromTemplate('discover_request'); + + \Session::flash('message', 'Votre demande à bien été prise en compte, merci !'); + return redirect()->route('home'); + + + } + + + /** + * Get a validator for an incoming registration request. + * + * @param array $data + * @return \Illuminate\Contracts\Validation\Validator + */ + protected function validator(array $data) + { + return Validator::make($data, [ + 'first_name' => ['required', 'string', 'max:255'], + 'last_name' => ['required', 'string', 'max:255'], + 'employer' => ['required', 'string', 'max:255'], + 'email' => [ + 'required', + 'string', + 'email', + 'max:255', + Rule::unique('users') + ], + recaptchaFieldName() => recaptchaRuleName(), + ]); + } +} diff --git a/app/Mail/TemplateMail.php b/app/Mail/TemplateMail.php index c3012a2..3607b71 100644 --- a/app/Mail/TemplateMail.php +++ b/app/Mail/TemplateMail.php @@ -28,6 +28,7 @@ class TemplateMail extends Mailable { $this->content = $content; $this->subject = $subject; + $this->replyTo(config('app.emails.olivier')); } /** diff --git a/resources/views/auth/discover.blade.php b/resources/views/auth/discover.blade.php new file mode 100644 index 0000000..949551c --- /dev/null +++ b/resources/views/auth/discover.blade.php @@ -0,0 +1,104 @@ +@extends('layouts.app') + +@section('content') +
+
+
+ +
+

Bienvenue sur {{config('app.name')}}

+

Remplissez ce formulaire pour faire une demande de période découverte pour reçevoir gratuitement les prochains numéro de Prescription Santé - Le Quotidien !

+
+ +
+ +
Demande de période découverte
+ +
+
+ @csrf + @if(request()->has('redirect_to')) + + @endif +
+ + +
+ + + @error('first_name') + + {{ $message }} + + @enderror +
+
+ +
+ + +
+ + + @error('last_name') + + {{ $message }} + + @enderror +
+
+ +
+ + +
+ + + @error('email') + + {{ $message }} + + @enderror +
+
+ +
+ + +
+ + + @error('employer') + + {{ $message }} + + @enderror +
+
+ + +
+
+ @error(recaptchaFieldName()) + + {{ $message }} + + @enderror + {!! ReCaptcha::htmlFormSnippet() !!} +
+
+ +
+
+ +
+
+
+
+
+
+
+
+@endsection diff --git a/routes/web.php b/routes/web.php index f694cd2..6ebd1ae 100644 --- a/routes/web.php +++ b/routes/web.php @@ -40,8 +40,13 @@ Route::domain(env('CLIENT_DOMAIN_NAME'))->group(function() { Route::get('/', 'AccountController@index')->name('account.index'); Route::post('/', 'AccountController@update')->name('account.update'); Route::post('password', 'AccountController@password')->name('account.password'); + }); + Route::prefix('decouverte')->group(function () { + Route::get('', 'DiscoverController@showForm')->name('discover.register'); + Route::post('', 'DiscoverController@register'); }); + Route::get('compte/{user}/demander-pdf', 'AccountController@askPdf')->name('account.ask-pdf'); /** Stripe Payment */