]> _ Git - psq.git/commitdiff
new account page
authorLouis Jeckel <louis.jeckel@outlook.com>
Wed, 14 Oct 2020 04:19:37 +0000 (06:19 +0200)
committerLouis Jeckel <louis.jeckel@outlook.com>
Wed, 14 Oct 2020 04:19:37 +0000 (06:19 +0200)
.idea/lettre-pharma.iml
.idea/php.xml
app/Http/Controllers/AccountController.php
app/User.php
database/migrations/2020_09_28_084558_add_position_to_ad_campaigns.php [deleted file]
public/img/nav-v2/10-logout.png
public/img/nav-v2/9-login.png
resources/views/account/index.blade.php
routes/web.php

index 0937141b974ada1c0e143ec288b71add962d9dc9..958a20cf306c6b146340989f66356c607da7a206 100644 (file)
@@ -52,6 +52,7 @@
       <excludeFolder url="file://$MODULE_DIR$/vendor/php-http/multipart-stream-builder" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/php-http/promise" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/phpoffice/phpspreadsheet" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/psq/psq-theme" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-client" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-factory" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/pusher/pusher-php-server" />
index b0b2f0fef8f4d07a880d626a1e9594c9d1d42911..89cd65d16b5cc62d15e4678b8bf6ed30ad478963 100644 (file)
       <path value="$PROJECT_DIR$/vendor/masterminds/html5" />
       <path value="$PROJECT_DIR$/vendor/judev/php-htmltruncator" />
       <path value="$PROJECT_DIR$/vendor/html2text/html2text" />
+      <path value="$PROJECT_DIR$/vendor/psq/psq-theme" />
     </include_path>
   </component>
   <component name="PhpInterpreters">
index 474db0029b93a55c590c2ff3da3f9bbfe540a116..25bb4c91c4696f4aee29c851a643d388cfa6c7fc 100644 (file)
@@ -44,11 +44,21 @@ class AccountController extends Controller
      */
     protected function validator(array $data)
     {
-        return Validator::make($data, [
-            'first_name' => ['required', 'string', 'max:255'],
-            'last_name' => ['required', 'string', 'max:255'],
-            'password' => ['required', 'string', 'min:8', 'confirmed'],
-        ]);
+
+        /** @var User $user */
+        $user = \Auth::user();
+        if($user->reg_complete) {
+            return Validator::make($data, [
+                'first_name' => ['required', 'string', 'max:255'],
+                'last_name' => ['required', 'string', 'max:255'],
+            ]);
+        } else {
+            return Validator::make($data, [
+                'first_name' => ['required', 'string', 'max:255'],
+                'last_name' => ['required', 'string', 'max:255'],
+                'password' => ['required', 'string', 'min:8', 'confirmed'],
+            ]);
+        }
     }
 
 
@@ -64,10 +74,16 @@ class AccountController extends Controller
         $user =\Auth::user();
 
         $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,
+            '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'),
         ]);
 
         $user->markEmailAsVerified();
@@ -75,8 +91,22 @@ class AccountController extends Controller
 
         LoginToken::where('token', $request->input('login_token'))->delete();
 
-        Session::flash('message', "Modifications enregistrées");
+        Session::flash('message', "Informations enregistrées avec succès !");
+
+        return redirect()->back();
+
+    }
+
+    public function password(Request $request)
+    {
+        Validator::make($request->all(), [
+            'password' => ['required', 'string', 'min:8', 'confirmed'],
+        ])->validate();
+        $user =\Auth::user();
+
+        $user->update(['password' => \Hash::make($request->input('password'))]);
 
+        Session::flash('message', "Mot de passe modifié avec succès !");
         return redirect()->back();
 
     }
index 5109195748b67934a1d7e5a8e9f0e8418f29f878..ae5ba6b31b0a5938e38cb56da382f412575fe183 100644 (file)
@@ -64,7 +64,12 @@ class User extends Authenticatable implements MustVerifyEmail
         'city',
         'phone',
         'type',
-        'unsubscribed'
+        'unsubscribed',
+        'employer',
+        'service',
+        'position',
+        'wants_pdf',
+        'accepts_polls',
     ];
 
     /**
@@ -92,6 +97,8 @@ class User extends Authenticatable implements MustVerifyEmail
         'early_access' => 'bool',
         'unsubscribed' => 'bool',
         'receives_pdf' => 'bool',
+        'wants_pdf' => 'bool',
+        'accepts_polls' => 'bool'
     ];
 
 
diff --git a/database/migrations/2020_09_28_084558_add_position_to_ad_campaigns.php b/database/migrations/2020_09_28_084558_add_position_to_ad_campaigns.php
deleted file mode 100644 (file)
index 77639a9..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-use Illuminate\Database\Migrations\Migration;
-use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\Schema;
-
-class AddPositionToAdCampaigns extends Migration
-{
-    /**
-     * Run the migrations.
-     *
-     * @return void
-     */
-    public function up()
-    {
-        Schema::table('ad_campaigns', function (Blueprint $table) {
-            //
-        });
-    }
-
-    /**
-     * Reverse the migrations.
-     *
-     * @return void
-     */
-    public function down()
-    {
-        Schema::table('ad_campaigns', function (Blueprint $table) {
-            //
-        });
-    }
-}
index 00f2a14105684b0bce9eab3027a0e92326a62c81..e415e073cd4f5e9ec1f74cb2825ce75d5bb3d7d8 100644 (file)
Binary files a/public/img/nav-v2/10-logout.png and b/public/img/nav-v2/10-logout.png differ
index e415e073cd4f5e9ec1f74cb2825ce75d5bb3d7d8..00f2a14105684b0bce9eab3027a0e92326a62c81 100644 (file)
Binary files a/public/img/nav-v2/9-login.png and b/public/img/nav-v2/9-login.png differ
index f2fefe45c9cb313ef52de5e2bdda3b3aa78c3fec..2d0b294b2e2c761e1872acfd28edce3f1526e485 100644 (file)
 @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 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-info">
+                            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>
+                    @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
-            @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">{{ __('Modification de votre profil') }}</div>
 
-                <div class="card-body">
+                <div class="card">
                     <form method="POST" action="{{ route('account.update') }}">
                         @csrf
-                        <input type="hidden" name="login_token" value="{{$token}}">
+                        <div class="card-header">{{ __('Modifier mon profil') }}</div>
+
+                        <div class="card-body">
 
-                        <div class="form-group row">
-                            <label for="first_name" class="col-md-4 col-form-label text-md-right">{{ __('Prénom') }}</label>
+                            <input type="hidden" name="login_token" value="{{$token}}">
 
-                            <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>
+                            <div class="form-group row">
+                                <label for="first_name" class="col-md-4 col-form-label text-md-right">{{ __('Prénom') }}</label>
 
-                                @error('first_name')
+                                <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
+                                    @enderror
+                                </div>
                             </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="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">
+                                <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')
+                                    @error('last_name')
                                     <span class="invalid-feedback" role="alert">
                                         <strong>{{ $message }}</strong>
                                     </span>
-                                @enderror
+                                    @enderror
+                                </div>
                             </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="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>
+                                <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')
+                                    @error('email')
                                     <span class="invalid-feedback" role="alert">
                                         <strong>{{ $message }}</strong>
                                     </span>
-                                @enderror
+                                    @enderror
+                                </div>
                             </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="form-group row">
+                                <label for="phone" class="col-md-4 col-form-label text-md-right">{{ __('Téléphone') }}</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">
+                                <div class="col-md-6">
+                                    <input id="phone" type="text" class="form-control @error('phone') is-invalid @enderror" name="phone" value="{{ old('phone', $user->phone) }}"  autocomplete="phone">
 
-                                @error('password')
+                                    @error('phone')
                                     <span class="invalid-feedback" role="alert">
                                         <strong>{{ $message }}</strong>
                                     </span>
-                                @enderror
+                                    @enderror
+                                </div>
                             </div>
-                        </div>
+                            <div class="form-group row">
+                                <label for="employer" class="col-md-4 col-form-label text-md-right">{{ __('Employeur') }}</label>
 
-                        <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="employer" type="text" class="form-control @error('employer') is-invalid @enderror" name="employer" value="{{ old('employer', $user->employer) }}" >
 
-                            <div class="col-md-6">
-                                <input id="password-confirm" type="password" class="form-control" name="password_confirmation" {{$user->reg_complete ? '' : 'required'}} autocomplete="new-password">
+                                    @error('employer')
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $message }}</strong>
+                                    </span>
+                                    @enderror
+                                </div>
                             </div>
-                        </div>
+                            <div class="form-group row">
+                                <label for="service" class="col-md-4 col-form-label text-md-right">{{ __('Service') }}</label>
+
+                                <div class="col-md-6">
+                                    <input id="service" type="text" class="form-control @error('service') is-invalid @enderror" name="service" value="{{ old('service', $user->service) }}" >
 
-                        <div class="form-group row mb-0">
-                            <div class="col-md-6 offset-md-4">
-                                <button type="submit" class="btn btn-primary">
-                                    {{ __('Enregistrer') }}
-                                </button>
+                                    @error('service')
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $message }}</strong>
+                                    </span>
+                                    @enderror
+                                </div>
                             </div>
+                            <div class="form-group row">
+                                <label for="position" class="col-md-4 col-form-label text-md-right">{{ __('Fonction') }}</label>
+
+                                <div class="col-md-6">
+                                    <input id="position" type="text" class="form-control @error('position') is-invalid @enderror" name="position" value="{{ old('position', $user->position) }}">
+
+                                    @error('fonction')
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $message }}</strong>
+                                    </span>
+                                    @enderror
+                                </div>
+                            </div>
+                            <div class="form-group row">
+                                <div class="col-md-6 offset-md-4">
+                                    <div class="form-check">
+                                        <input class="form-check-input" type="checkbox" id="acceptsPolls" name="acceptsPolls" {{old('wantsPdf', $user->accepts_polls) ? 'checked' : ''}}>
+
+                                        <label class="form-check-label" for="acceptsPolls">
+                                            Accepteriez-vous de répondre de temps à temps à de très courts sondages pour la rédaction et de façon anonyme ?
+                                        </label>
+                                    </div>
+
+                                </div>
+                            </div>
+                            <div class="form-group row">
+                                <div class="col-md-6 offset-md-4">
+                                    <div class="form-check">
+                                        <input class="form-check-input" type="checkbox" id="wantsPdf" name="wantsPdf" {{old('wantsPdf', $user->wants_pdf) ? 'checked' : ''}}>
+
+                                        <label class="form-check-label" for="wantsPdf">
+                                            Souhaitez-vous recevoir en plus de la version numérique une édition PDF de la lettre ?
+                                        </label>
+                                    </div>
+
+                                </div>
+                            </div>
+
+
+
+                            @if(! $user->reg_complete)
+                                <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>
+                            @endif
+
+                            <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>
+
                         </div>
                     </form>
                 </div>
+                @if($user->reg_complete)
+                    <div class="card mt-4">
+                        <form method="POST" action="{{ route('account.password') }}">
+                            @csrf
+                            <div class="card-header">Modifier mon mot de passe</div>
+
+                            <div class="card-body">
+                                <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>
+                            </div>
+                        </form>
+
+                    </div>
+                @endif
             </div>
+
         </div>
     </div>
-</div>
 @endsection
index 5ff79732c6e47795f9daf55d151197060edb7117..a57a2ce5514061b2b965c38afb883191d04a7a2d 100644 (file)
@@ -38,6 +38,7 @@ Route::domain(env('CLIENT_DOMAIN_NAME'))->group(function() {
     Route::prefix('/compte')->middleware(['login.token:false', 'auth'])->group(function() {
         Route::get('/', 'AccountController@index')->name('account.index');
         Route::post('/', 'AccountController@update')->name('account.update');
+        Route::post('/password', 'AccountController@password')->name('account.password');
 
     });