'email',
'max:255',
Rule::unique('users')
- ->where(fn(Builder $builder) => $builder->where('is_prospect', false))
+ ->where(fn(Builder $builder) => $builder->where('type', User::TYPE_USER))
],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
'employer' => $data['employer'],
'password' => Hash::make($data['password']),
'reg_complete' => true,
- 'is_prospect' => false,
+ 'type' => User::TYPE_USER,
'self_registered' => true,
]
);
public function __construct()
{
- if(config('app.env') === 'prod') {
+ if(config('app.env') === 'prod' || true) {
$this->middleware('auth');
+ $this->middleware('early');
+
+
}
}
--- /dev/null
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+
+class WallController extends Controller
+{
+ //
+
+ public function __construct()
+ {
+ }
+
+ public function wall()
+ {
+ return view('wall');
+ }
+
+}
namespace App\Http;
+use App\Http\Middleware\EarlyAccessMiddleware;
use App\Http\Middleware\LoginWithToken;
use App\LoginToken;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
+ 'early' => EarlyAccessMiddleware::class
];
protected $middlewarePriority = [
--- /dev/null
+<?php
+
+namespace App\Http\Middleware;
+
+use Closure;
+
+class EarlyAccessMiddleware
+{
+ /**
+ * Handle an incoming request.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @param \Closure $next
+ * @return mixed
+ */
+ public function handle($request, Closure $next)
+ {
+ if(\Auth::check() && \Auth::user()->early_access === false) {
+ return redirect()->action('WallController@wall');
+ }
+ return $next($request);
+ }
+}
* @property Carbon $trial_ends_at (is user is on trial)
* @property bool self_registered (if user used /register)
* @property string $employer (used if self registered)
- * @property bool $is_prospect
+ * @property int $type
* @property bool $reg_complete
* @property string $status
*/
'trial_ends_at' => 'datetime',
'active_until' => 'datetime',
'self_registered' => 'bool',
- 'is_prospect' => 'bool',
+ 'early_access' => 'bool',
];
'prospect' => [
'badge' => 'warning',
'label' => 'Prospect',
+ ],
+ 'special' => [
+ 'badge' => 'warning',
+ 'label' => 'Trimestriel',
]
];
-
-
+ public const TYPE_USER = 0;
+ public const TYPE_PROSPECT = 1;
+ public const TYPE_SPECIAL = 2;
/**
*/
public function scopeProspect(Builder $builder): void
{
- $builder->where('is_prospect', true);
+ $builder->where('type', self::TYPE_PROSPECT);
}
/**
*/
public function scopeRegisteredUser(Builder $builder): void
{
- $builder->where('is_prospect', false);
+ $builder->where('type', self::TYPE_USER);
}
{
$id = 'inactive';
- if($this->orgIsSubscribed) {
- $id = 'org_subscribed';
- }
- if($this->subscribed()) {
- $id = 'ind_subscribed';
- }
- if($this->onTrial()) {
- $id = 'trial';
- }
- if($this->is_prospect) {
- $id = 'prospect';
+ switch($this->type) {
+ case self::TYPE_USER:
+ if($this->orgIsSubscribed) {
+ $id = 'org_subscribed';
+ }
+ if($this->subscribed()) {
+ $id = 'ind_subscribed';
+ }
+ if($this->onTrial()) {
+ $id = 'trial';
+ }
+ break;
+
+ case self::TYPE_PROSPECT:
+ $id = 'prospect';
+ break;
+
+ case self::TYPE_SPECIAL:
+ $id = 'special';
+ break;
}
+
+
return $id;
}
--- /dev/null
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class ChangeUsersTable extends Migration
+{
+ /**
+ * Run the migrations.
+ *
+ * @return void
+ */
+ public function up()
+ {
+ Schema::table('users', function (Blueprint $table) {
+ $table->dropColumn('is_prospect');
+ $table->smallInteger('type')->default(0);
+ $table->boolean('early_access')->default(0);
+
+
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('users', function (Blueprint $table) {
+ $table->boolean('is_prospect');
+ $table->dropColumn('type');
+ $table->dropColumn('early_access');
+
+ });
+
+
+ }
+}
@guest
<p class="denim">Si vous possédez un compte, <a href="{{route('login', ['redirect_to' => request()->getUri()])}}">cliquez ici pour vous connecter</a></p>
<p class="orange">Sinon, <a href="{{route('not-registered')}}">cliquez ici pour découvrir nos formules d'abonnement !</a></p>
- @elseguest
- <h2>Il semblerait que votre abonnement n'est plus actif...</h2>
@endguest
+ @auth
+ <h2>Il semblerait que votre abonnement n'est plus actif...</h2>
+ @endauth
</div>
@endsection
--- /dev/null
+@extends('layouts.app')
+
+@section('content')
+
+ <div class="container">
+ <h1>Veuillez repasser plus tard !</h1>
+
+
+ @if(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">×</span>
+ </button>
+ </div>
+ @endif
+
+ <div class="alert alert-info">
+ Le site est encore en construction, veuillez revenir dès le 07/09/2020 !
+ </div>
+
+ </div>
+
+@endsection
Route::get('/l/{link:slug}', 'TrackedLinkController@redirect')->name('track');
+
+ Route::get('site-ferme', 'WallController@wall');
});