From f5d2ebaa9329d0a0b704d6a8b41e4f018ab1120c Mon Sep 17 00:00:00 2001 From: Louis Jeckel Date: Mon, 19 Oct 2020 16:41:39 +0200 Subject: [PATCH] critical AccountController.php update --- app/Http/Controllers/AccountController.php | 42 ++++-- app/Http/Controllers/FileController.php | 5 +- app/Http/Controllers/FlowpaperController.php | 7 +- .../account/complete-registration.blade.php | 125 ++++++++++++++++++ routes/web.php | 5 +- 5 files changed, 171 insertions(+), 13 deletions(-) create mode 100644 resources/views/account/complete-registration.blade.php diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index c972f45..36da5bc 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -21,7 +21,7 @@ class AccountController extends Controller * Show the setup page. * * @param Request $request - * @return \Illuminate\Contracts\Support\Renderable + * @return \Illuminate\View\View */ public function index(Request $request) { @@ -36,6 +36,26 @@ class AccountController extends Controller ]); } + /** + * @param Request $request + * @return \Illuminate\View\View + */ + public function completeRegistration(Request $request) + { + /** @var User $user */ + $user = \Auth::user(); + + $token = $request->get('token'); + + return view('account.complete-registration', [ + 'user' => $user, + 'token' => $token ?? '', + ]); + + } + + + /** * Get a validator for an incoming registration request. * @@ -76,16 +96,22 @@ class AccountController extends Controller $user->update([ 'first_name' => \Str::title($request->input('first_name')), 'last_name' => \Str::title($request->input('last_name')), - 'password' => \Hash::make($request->input('password')), 'reg_complete' => true, - 'phone' => $request->input('phone'), - 'employer' => $request->input('employer'), - 'position' => $request->input('position'), - 'service' => $request->input('service'), - 'accepts_polls' => $request->boolean('acceptsPolls'), - 'wants_pdf' => $request->boolean('wantsPdf'), + 'phone' => $request->input('phone', $user->phone), + 'employer' => $request->input('employer', $user->employer), + 'position' => $request->input('position', $user->position), + 'service' => $request->input('service', $user->service), + 'accepts_polls' => $request->boolean('acceptsPolls', $user->accepts_polls), + 'wants_pdf' => $request->boolean('wantsPdf', $user->wants_pdf), ]); + + if($request->input('password') !== null) { + $user->update([ + 'password' => \Hash::make($request->input('password')) + ]); + } + LoginToken::where('token', $request->input('login_token'))->delete(); Session::flash('message', "Informations enregistrées avec succès !"); diff --git a/app/Http/Controllers/FileController.php b/app/Http/Controllers/FileController.php index c5cdc60..992ff5d 100644 --- a/app/Http/Controllers/FileController.php +++ b/app/Http/Controllers/FileController.php @@ -26,9 +26,10 @@ class FileController extends Controller 'component' => 'file-instant-search', 'class' => 'psq-archives' ]); - } else { - return abort(403, 'Vous devez avoir un abonnement actif pour accéder aux archives.'); } + + return abort(403, 'Vous devez avoir un abonnement actif pour accéder aux archives.'); + } diff --git a/app/Http/Controllers/FlowpaperController.php b/app/Http/Controllers/FlowpaperController.php index 937d208..bb9d29a 100644 --- a/app/Http/Controllers/FlowpaperController.php +++ b/app/Http/Controllers/FlowpaperController.php @@ -27,7 +27,7 @@ class FlowpaperController extends Controller } if(! \Auth::user()->reg_complete) { - return redirect()->route('account.index'); + return redirect()->route('account.complete-reg'); } $this->authorize('view', $file); @@ -68,6 +68,11 @@ class FlowpaperController extends Controller return $file->view(); } + /** + * @param PdfFile $file + * @param Request $request + * @return \Symfony\Component\HttpFoundation\StreamedResponse + */ public function download(PdfFile $file, Request $request) { if (! $request->hasValidSignature()) { diff --git a/resources/views/account/complete-registration.blade.php b/resources/views/account/complete-registration.blade.php new file mode 100644 index 0000000..433ab93 --- /dev/null +++ b/resources/views/account/complete-registration.blade.php @@ -0,0 +1,125 @@ +@extends('layouts.app') + +@section('content') +
+
+
+ @if(! $user->reg_complete) +
+ Merci de remplir ce formulaire pour finaliser la création de votre compte afin de pouvoir accéder aux contenus Prescription Santé. +
+ @else + @if($user->hasValidSubscription()) +
+ Votre abonnement est actif, vous pouvez accéder aux contenus Prescription Santé Quotidien. +
+ + @elseif($user->onTrial()) +
+ Vous bénéficiez d'une période d'évaluation jusqu'au {{$user->trial_ends_at->formatLocalized('%d %B %Y')}} +
+ @endif + @endif + @if (session('registration_complete')) +
+ Votre nouveau mot de passe à bien été créé, votre compte est à présent actif ! + +
+ @elseif(session()->has('message')) +
+ {!! session('message') !!} + +
+ @endif + +
+
Compléter votre profil
+ +
+
+ @csrf + + +
+ + +
+ + + @error('first_name') + + {{ $message }} + + @enderror +
+
+ +
+ + +
+ + + @error('last_name') + + {{ $message }} + + @enderror +
+
+ + +
+ + +
+ + + @error('email') + + {{ $message }} + + @enderror +
+
+ +
+ + +
+ reg_complete ? '' : 'required'}} autocomplete="new-password"> + + @error('password') + + {{ $message }} + + @enderror +
+
+ +
+ + +
+ reg_complete ? '' : 'required'}} autocomplete="new-password"> +
+
+ +
+
+ +
+
+
+
+
+
+
+
+@endsection diff --git a/routes/web.php b/routes/web.php index f1ee268..66e046d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -35,10 +35,11 @@ Route::domain(env('CLIENT_DOMAIN_NAME'))->group(function() { Route::get('/', 'HomeController@index')->name('home'); /** Account */ - Route::prefix('/compte')->middleware(['login.token:false', 'auth'])->group(function() { + Route::prefix('compte')->middleware(['login.token:false', 'auth'])->group(function() { + Route::get('valider', 'AccountController@completeRegistration')->name('account.complete-reg'); Route::get('/', 'AccountController@index')->name('account.index'); Route::post('/', 'AccountController@update')->name('account.update'); - Route::post('/password', 'AccountController@password')->name('account.password'); + Route::post('password', 'AccountController@password')->name('account.password'); }); -- 2.39.5