]> _ Git - psq.git/commitdiff
critical AccountController.php update
authorLouis Jeckel <louis.jeckel@outlook.com>
Mon, 19 Oct 2020 14:41:39 +0000 (16:41 +0200)
committerLouis Jeckel <louis.jeckel@outlook.com>
Mon, 19 Oct 2020 14:41:39 +0000 (16:41 +0200)
app/Http/Controllers/AccountController.php
app/Http/Controllers/FileController.php
app/Http/Controllers/FlowpaperController.php
resources/views/account/complete-registration.blade.php [new file with mode: 0644]
routes/web.php

index c972f45850052d075b7ee20692376eb599844fc7..36da5bc0c93d795dc57bfc25a034b6aa5252c892 100644 (file)
@@ -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 !");
index c5cdc608c1c6615e4d8ecbfd44eafa5325be7296..992ff5dcffbf643d47ed9221a7e2edebe23deb43 100644 (file)
@@ -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.');
+
     }
 
 
index 937d20895e3bf027c22d31e5501ec9a26990e98e..bb9d29a7a31d2d3f75e9b617dc4d25a0f3203a4d 100644 (file)
@@ -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 (file)
index 0000000..433ab93
--- /dev/null
@@ -0,0 +1,125 @@
+@extends('layouts.app')
+
+@section('content')
+<div class="container">
+    <div class="row justify-content-center">
+        <div class="col-md-8">
+            @if(! $user->reg_complete)
+            <div class="alert alert-warning">
+                Merci de remplir ce formulaire pour finaliser la création de votre compte afin de pouvoir accéder aux contenus <b>Prescription Santé.</b>
+            </div>
+            @else
+                @if($user->hasValidSubscription())
+                    <div class="alert alert-success">
+                        Votre abonnement est actif, vous pouvez accéder aux contenus <b>Prescription Santé Quotidien.</b>
+                    </div>
+
+                @elseif($user->onTrial())
+                <div class="alert alert-info">
+                    Vous bénéficiez d'une période d'évaluation jusqu'au {{$user->trial_ends_at->formatLocalized('%d %B %Y')}}
+                </div>
+                @endif
+            @endif
+            @if (session('registration_complete'))
+            <div class="alert alert-success alert-dismissible">
+                Votre nouveau mot de passe à bien été créé, votre compte est à présent actif !
+                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+            @elseif(session()->has('message'))
+            <div class="alert alert-success alert-dismissible">
+                {!! session('message') !!}
+                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+            @endif
+
+            <div class="card">
+                <div class="card-header">Compléter votre profil</div>
+
+                <div class="card-body">
+                    <form method="POST" action="{{ route('account.update') }}">
+                        @csrf
+                        <input type="hidden" name="login_token" value="{{$token}}">
+
+                        <div class="form-group row">
+                            <label for="first_name" class="col-md-4 col-form-label text-md-right">{{ __('Prénom') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="first_name" type="text" class="form-control @error('first_name') is-invalid @enderror" name="first_name" value="{{ old('first_name', $user->first_name) }}" required autocomplete="given-name" autofocus>
+
+                                @error('first_name')
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $message }}</strong>
+                                    </span>
+                                @enderror
+                            </div>
+                        </div>
+
+                        <div class="form-group row">
+                            <label for="last_name" class="col-md-4 col-form-label text-md-right">{{ __('Nom') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="last_name" type="text" class="form-control @error('last_name') is-invalid @enderror" name="last_name" value="{{ old('last_name', $user->last_name) }}" required autocomplete="family-name">
+
+                                @error('last_name')
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $message }}</strong>
+                                    </span>
+                                @enderror
+                            </div>
+                        </div>
+
+
+                        <div class="form-group row">
+                            <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('Adresse email') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email', $user->email) }}" required autocomplete="email" disabled>
+
+                                @error('email')
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $message }}</strong>
+                                    </span>
+                                @enderror
+                            </div>
+                        </div>
+
+                        <div class="form-group row">
+                            <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Nouveau mot de passe') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" {{$user->reg_complete ? '' : 'required'}} autocomplete="new-password">
+
+                                @error('password')
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $message }}</strong>
+                                    </span>
+                                @enderror
+                            </div>
+                        </div>
+
+                        <div class="form-group row">
+                            <label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirmation mot de passe') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="password-confirm" type="password" class="form-control" name="password_confirmation" {{$user->reg_complete ? '' : 'required'}} autocomplete="new-password">
+                            </div>
+                        </div>
+
+                        <div class="form-group row mb-0">
+                            <div class="col-md-6 offset-md-4">
+                                <button type="submit" class="btn btn-primary">
+                                    {{ __('Enregistrer') }}
+                                </button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+@endsection
index f1ee2689eb7cd035fa571d724bc32a3b8189aade..66e046d92f59468fa86f46cbda651418b5f5dff4 100644 (file)
@@ -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');
 
     });