--- /dev/null
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Notifications\NewTrialUser;
+use App\User;
+use Hash;
+use Illuminate\Database\Eloquent\Builder;
+use Illuminate\Http\Request;
+use Illuminate\Support\Str;
+use Illuminate\Validation\Rule;
+use Validator;
+
+class DiscoverController extends Controller
+{
+ public function __construct()
+ {
+ $this->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(),
+ ]);
+ }
+}
{
$this->content = $content;
$this->subject = $subject;
+ $this->replyTo(config('app.emails.olivier'));
}
/**
--- /dev/null
+@extends('layouts.app')
+
+@section('content')
+<div class="container">
+ <div class="row justify-content-center">
+ <div class="col-md-8">
+
+ <div class="alert-info alert">
+ <p class="font-weight-bold">Bienvenue sur {{config('app.name')}}</p>
+ <p class="mb-0">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 !</p>
+ </div>
+
+ <div class="card">
+
+ <div class="card-header">Demande de période découverte</div>
+
+ <div class="card-body">
+ <form method="POST" action="{{ route('discover.register') }}">
+ @csrf
+ @if(request()->has('redirect_to'))
+ <input type="hidden" name="redirect_to" value="{{request()->redirect_to}}">
+ @endif
+ <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') }}" 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') }}" 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">{{ __('E-Mail Address') }}</label>
+
+ <div class="col-md-6">
+ <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email">
+
+ @error('email')
+ <span class="invalid-feedback" role="alert">
+ <strong>{{ $message }}</strong>
+ </span>
+ @enderror
+ </div>
+ </div>
+
+ <div class="form-group row">
+ <label for="employer" class="col-md-4 col-form-label text-md-right">{{ __('Employeur') }}</label>
+
+ <div class="col-md-6">
+ <input id="employer" type="text" class="form-control @error('employer') is-invalid @enderror" name="employer" value="{{ old('employer') }}" required>
+
+ @error('employer')
+ <span class="invalid-feedback" role="alert">
+ <strong>{{ $message }}</strong>
+ </span>
+ @enderror
+ </div>
+ </div>
+
+
+ <div class="form-group row">
+ <div class="col-md-8 offset-lg-4">
+ @error(recaptchaFieldName())
+ <span class="invalid-feedback" role="alert">
+ <strong>{{ $message }}</strong>
+ </span>
+ @enderror
+ {!! ReCaptcha::htmlFormSnippet() !!}
+ </div>
+ </div>
+
+ <div class="form-group row mb-0">
+ <div class="col-md-6 offset-md-4">
+ <button type="submit" class="btn btn-primary">
+ {{ __('Register') }}
+ </button>
+ </div>
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+@endsection
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 */