Compare commits
No commits in common. "master" and "addGoogleAnalytics" have entirely different histories.
master
...
addGoogleA
26 changed files with 1412 additions and 1330 deletions
|
|
@ -1,78 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
/*
|
||||
* Command Name: LDC Web Status Checker
|
||||
* Description: Envoi des infos Serveur/Laravel vers LDC Web
|
||||
* Version: 1.1
|
||||
* Author: Vincent BRIDIER
|
||||
* Author URI: vincent.bridier@ldc.fr
|
||||
*/
|
||||
|
||||
class LdcWebStatusChecker extends Command
|
||||
{
|
||||
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'ldcweb:statuschecker';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Envoi des infos Serveur/Laravel vers LDC Web';
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$data = [];
|
||||
$data['uuid'] = config('ldcweb.project_uuid');
|
||||
|
||||
// Sitemap.xml ?
|
||||
if (file_exists(public_path() . '/sitemap.xml')) {
|
||||
$data['sitemap'] = 'true';
|
||||
} else {
|
||||
$data['sitemap'] = 'false';
|
||||
}
|
||||
|
||||
// Robots.txt ?
|
||||
if (file_exists(public_path() . '/robots.txt')) {
|
||||
$data['robots'] = 'true';
|
||||
} else {
|
||||
$data['robots'] = 'false';
|
||||
}
|
||||
|
||||
//Check logs
|
||||
$data['logs'] = 0;
|
||||
$patherror = storage_path('/logs');
|
||||
$files = glob($patherror . '/*.log');
|
||||
if (count($files) > 0) {
|
||||
foreach ($files as $file) {
|
||||
$data['logs'] = $data['logs'] + filesize($file);
|
||||
}
|
||||
}
|
||||
|
||||
$data['code']['version'] = app()->version();
|
||||
|
||||
// Send by cURL
|
||||
$url = 'https://ldc-web.ldc.fr/api/status-checker';
|
||||
$ch = curl_init($url);
|
||||
$payload = ['token' => 'CE8S52Qq7stf5k8frF4T', 'datas' => json_encode($data)];
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_exec($ch);
|
||||
curl_close($ch);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -244,11 +244,11 @@ class EmployeesController extends Controller
|
|||
|
||||
// Is employee locked down ?
|
||||
if ($employee->password_attempts >= 3) {
|
||||
SendEmployeeLockedDownMailToEmployee::dispatch(
|
||||
SendEmployeeLockedDownMailToEmployee::dispatchAfterResponse(
|
||||
new EmployeeLockedDown($employee),
|
||||
$employee
|
||||
);
|
||||
SendEmployeeLockedDownMailToSiteRH::dispatch(
|
||||
SendEmployeeLockedDownMailToSiteRH::dispatchAfterResponse(
|
||||
new EmployeeYourAccountIsLockedDown($employee),
|
||||
$employee
|
||||
);
|
||||
|
|
@ -278,16 +278,15 @@ class EmployeesController extends Controller
|
|||
|
||||
public function passwordForgottenSubmit(EmployeeForgottenPasswordRequest $request)
|
||||
{
|
||||
/** @var \App\Models\Employee */
|
||||
$employee = Employee::where('matricule', $request->matricule)->firstOrFail();
|
||||
/** @var \App\Models\EmployeeMailToken */
|
||||
$token = EmployeeMailToken::whereHas('employee', function ($q) use ($employee) {
|
||||
$q->where('id', $employee->id);
|
||||
})->firstOrNew();
|
||||
$token->email = $employee->email;
|
||||
$token->employee()->associate($employee);
|
||||
$token = $employee->token ?? new EmployeeMailToken();
|
||||
$token->fill([
|
||||
'email' => $employee->email,
|
||||
'employee_id' => $employee->id
|
||||
]);
|
||||
$token->saveOrFail();
|
||||
SendMailResetPasswordToEmployee::dispatchAfterResponse($employee, $token);
|
||||
$token->employee()->associate($token);
|
||||
SendMailResetPasswordToEmployee::dispatchAfterResponse($employee);
|
||||
return \redirect()->back()->with('successMail', true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ class SondagesController extends Controller
|
|||
/** @var \app\Models\Employee */
|
||||
$employee = auth('employee')->user();
|
||||
if ($employee->hasAnweredToSondage($sondage)) {
|
||||
return view('front.sondages.saved', ['answered' => true, 'sondage' => $sondage]);
|
||||
return view('front.sondages.saved', ['answered' => true]);
|
||||
}
|
||||
return view('front.sondages.show', compact('sondage'));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Auth\Middleware\Authenticate as Middleware;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
|
||||
class Authenticate extends Middleware
|
||||
{
|
||||
|
|
@ -20,7 +19,6 @@ class Authenticate extends Middleware
|
|||
'employee' => route('employees.login')
|
||||
];
|
||||
if (! $request->expectsJson()) {
|
||||
Session::flash('message', trans('Vous devez vous identifier pour àccéder à cette page'));
|
||||
foreach ($request->route()->gatherMiddleware() as $middleware) {
|
||||
if (\is_string($middleware) and strpos($middleware, 'auth:') !== false) {
|
||||
$route = $logins[str_replace('auth:', '', $middleware)] ?? null;
|
||||
|
|
|
|||
|
|
@ -6,8 +6,6 @@ use App\Models\Site;
|
|||
use Closure;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
use App\Enums\Role;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
|
||||
class UserSite
|
||||
{
|
||||
|
|
@ -23,35 +21,29 @@ class UserSite
|
|||
/** @var \App\Models\User */
|
||||
$user = auth()->user();
|
||||
try {
|
||||
if (!Site::whereId($user->selected_site_id)->exists()) {
|
||||
$user->selected_site_id = null;
|
||||
$user->save();
|
||||
}
|
||||
|
||||
if ($request->query('userSite')) {
|
||||
/** @var \App\Models\Site|null */
|
||||
$site = $user->role->equals(Role::admin()) ?
|
||||
Site::whereId($request->query('userSite'))->first() :
|
||||
$user->sites()->where('site_id', $request->query('userSite'))->first();
|
||||
if ($site) {
|
||||
$user->selected_site_id = $site->id;
|
||||
$user->saveOrFail();
|
||||
}
|
||||
}
|
||||
|
||||
// Select user site
|
||||
if (!$user->selected_site_id) {
|
||||
/** @var \App\Models\Site */
|
||||
$site = $user->role->equals(Role::admin()) ?
|
||||
Site::firstOrFail() : $user->sites()->firstOrFail();
|
||||
$user->selected_site_id = $site->id;
|
||||
$user->saveOrFail();
|
||||
}
|
||||
if ($request->query('userSite')) {
|
||||
$site = $user->role->equals(Role::admin()) ?
|
||||
Site::whereId($request->query('userSite'))->firstOrFail() :
|
||||
$user->sites()->where('site_id', $request->query('userSite'))->firstOrFail();
|
||||
$user->selected_site_id = $site->id;
|
||||
$user->saveOrFail();
|
||||
} elseif (!Site::where('id', $user->selected_site_id)->exists()) {
|
||||
$site = $user->role->equals(Role::admin()) ?
|
||||
Site::whereId($request->query('userSite'))->firstOrFail() :
|
||||
$user->sites()->where('site_id', $request->query('userSite'))
|
||||
->firstOrFail();
|
||||
$user->selected_site_id = $site->id;
|
||||
$user->saveOrFail();
|
||||
}
|
||||
} catch (ModelNotFoundException $e) {
|
||||
Log::warning("$user->name n'as pas de site administrable.");
|
||||
auth()->logout();
|
||||
Session::flash('error', "$user->name n'as pas de site administrable.");
|
||||
return \response()->redirectToRoute('bo.login');
|
||||
abort(400, 'Vous n\'avez pas de site administrable');
|
||||
}
|
||||
return $next($request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ namespace App\Jobs;
|
|||
|
||||
use App\Mail\EmployeePasswordResetMail;
|
||||
use App\Models\Employee;
|
||||
use App\Models\EmployeeMailToken;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
|
|
@ -20,22 +19,16 @@ class SendMailResetPasswordToEmployee implements ShouldQueue
|
|||
use Queueable;
|
||||
use SerializesModels;
|
||||
|
||||
/** @var \App\Models\Employee */
|
||||
protected $employee;
|
||||
|
||||
/** @var \App\Models\EmployeeMailToken */
|
||||
protected $token;
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*
|
||||
* @param \App\Models\Employee $employee
|
||||
* @param \App\Models\EmployeeMailToken $token
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(Employee $employee, EmployeeMailToken $token)
|
||||
public function __construct(Employee $employee)
|
||||
{
|
||||
$this->employee = $employee;
|
||||
$this->token = $token;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -45,7 +38,7 @@ class SendMailResetPasswordToEmployee implements ShouldQueue
|
|||
*/
|
||||
public function handle()
|
||||
{
|
||||
Mail::to(['email' => $this->token->email])->send(new EmployeePasswordResetMail($this->employee));
|
||||
Mail::to(['email' => $this->employee->token->email])->send(new EmployeePasswordResetMail($this->employee));
|
||||
Log::debug(sprintf('Sent %s to %s', EmployeePasswordResetMail::class, config('mail.contactsList.contact')));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ class EmployeeLockedDown extends Mailable
|
|||
{
|
||||
return $this
|
||||
->subject(sprintf('%s : Un compte salarié vient d\'être verrouillé', config('app.name')))
|
||||
->view('emails.employee-own-lockedDown')
|
||||
->text('emails.employee-own-lockedDown-plain')
|
||||
->view('emails.employee-lockedDown')
|
||||
->text('emails.employee-lockedDown-plain')
|
||||
->with('employee', $this->employee);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ class EmployeeYourAccountIsLockedDown extends Mailable
|
|||
{
|
||||
return $this
|
||||
->subject(sprintf('%s : Votre compte salarié vient d\'être verrouillé', config('app.name')))
|
||||
->view('emails.employee-lockedDown')
|
||||
->text('emails.employee-lockedDown-plain')
|
||||
->view('emails.employee-own-lockedDown')
|
||||
->text('emails.employee-own-lockedDown-plain')
|
||||
->with('employee', $this->employee);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -179,16 +179,6 @@ class Site extends Model
|
|||
parent::__construct($attributes);
|
||||
}
|
||||
|
||||
protected static function booted()
|
||||
{
|
||||
static::deleted(function (self $model) {
|
||||
User::whereSelectedSiteId($model->id)->get()
|
||||
->map(function (User $user) {
|
||||
$user->selected_site_id = null;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Has one Societe
|
||||
*
|
||||
|
|
@ -216,7 +206,7 @@ class Site extends Model
|
|||
*/
|
||||
public function users()
|
||||
{
|
||||
return $this->belongsToMany(User::class, 'user_site');
|
||||
return $this->belongsToMany(Site::class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -28,7 +28,9 @@ class AppServiceProvider extends ServiceProvider
|
|||
public function boot()
|
||||
{
|
||||
// LOCAL HTTPS FIX
|
||||
URL::forceScheme('https');
|
||||
if (config('app.env') !== 'local') {
|
||||
URL::forceScheme('https');
|
||||
}
|
||||
// HA PROXY FIX
|
||||
App::singleton('clientIp', function () {
|
||||
if (config('app.env') === 'local') {
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@
|
|||
"fruitcake/laravel-cors": "^2.0",
|
||||
"guzzlehttp/guzzle": "^7.0.1",
|
||||
"htmlmin/htmlmin": "^8.0",
|
||||
"kwaadpepper/crud-policies": "^0.4.5",
|
||||
"kwaadpepper/enum": "^2.1",
|
||||
"kwaadpepper/exception-handler": "^0.0.9",
|
||||
"kwaadpepper/crud-policies": "^0.2.0",
|
||||
"kwaadpepper/enum": "^2.0",
|
||||
"kwaadpepper/exception-handler": "^0.0.1",
|
||||
"kwaadpepper/image-resizer": "^0.0.3",
|
||||
"laravel/framework": "^8.12",
|
||||
"laravel/tinker": "^2.5",
|
||||
|
|
@ -66,11 +66,7 @@
|
|||
"config": {
|
||||
"optimize-autoloader": true,
|
||||
"preferred-install": "dist",
|
||||
"sort-packages": true,
|
||||
"allow-plugins": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": true,
|
||||
"composer/package-versions-deprecated": true
|
||||
}
|
||||
"sort-packages": true
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
|
|||
2455
composer.lock
generated
2455
composer.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -19,7 +19,9 @@ return [
|
|||
|
||||
'allowed_methods' => ['*'],
|
||||
|
||||
'allowed_origins' => ['*'],
|
||||
'allowed_origins' => ['
|
||||
http://portsalaries.test
|
||||
'],
|
||||
|
||||
'allowed_origins_patterns' => [],
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,6 @@ return [
|
|||
* so you can receive email if things go mad
|
||||
*/
|
||||
'contactsList' => [
|
||||
env('MAIL_LIST_SERVICEWEB', 'equipe.web@ldc.fr')
|
||||
'serviceweb' => env('MAIL_LIST_SERVICEWEB', 'equipe.web@ldc.fr')
|
||||
]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'project_uuid' => env('PROJECT_UUID')
|
||||
];
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class ChangeDeleteRestictionPivotUserSite extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('user_site', function (Blueprint $table) {
|
||||
$table->dropForeign(['site_id']);
|
||||
$table->foreign('site_id')->references('id')->on('sites')
|
||||
->cascadeOnDelete();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'classes' => [
|
||||
'societes' => 'Societies',
|
||||
'employees' => 'Employees',
|
||||
'plannings' => 'Plannings',
|
||||
'poles' => 'Poles',
|
||||
'sites' => 'Sites',
|
||||
'sondages' => 'Sondages',
|
||||
'users' => 'Users',
|
||||
]
|
||||
];
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'classes' => [
|
||||
'societes' => 'Sociétés',
|
||||
'employees' => 'Salariés',
|
||||
'plannings' => 'Plannings',
|
||||
'poles' => 'Poles',
|
||||
'sites' => 'Sites',
|
||||
'sondages' => 'Sondages',
|
||||
'users' => 'Utilisateurs',
|
||||
]
|
||||
];
|
||||
14
resources/sass/_classes.scss
vendored
14
resources/sass/_classes.scss
vendored
|
|
@ -9,16 +9,4 @@
|
|||
#siteid {
|
||||
color: white;
|
||||
margin-right: 100px;
|
||||
}
|
||||
|
||||
.alertMessage {
|
||||
text-align: center;
|
||||
max-width: 80%;
|
||||
min-width: 15rem;
|
||||
margin: 1rem auto;
|
||||
padding: 0.5rem 1rem;
|
||||
background-color: #e5e2e2;
|
||||
font-weight: bold;
|
||||
border-radius: 0.4rem;
|
||||
font-family: Tahoma;
|
||||
}
|
||||
}
|
||||
2
resources/sass/back.scss
vendored
2
resources/sass/back.scss
vendored
|
|
@ -1,4 +1,4 @@
|
|||
@import "./_import";
|
||||
@import "_import";
|
||||
|
||||
@import "layouts/backend/top_nav";
|
||||
|
||||
|
|
|
|||
1
resources/sass/front.scss
vendored
1
resources/sass/front.scss
vendored
|
|
@ -1,3 +1,2 @@
|
|||
@import "~swiper/swiper.min";
|
||||
@import "front/style.sass";
|
||||
@import "./_import";
|
||||
|
|
|
|||
1
resources/sass/front_login.scss
vendored
1
resources/sass/front_login.scss
vendored
|
|
@ -1,3 +1,2 @@
|
|||
@import "~swiper/swiper.min";
|
||||
@import "front/styleLogin.sass";
|
||||
@import "./_import";
|
||||
|
|
|
|||
|
|
@ -29,4 +29,4 @@
|
|||
<!-- STYLES -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" integrity="sha256-hHKA3d/HttC8OW3Sl093W8DoZudhHJDj++kZYo6MLzA=" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11.0.16/dist/sweetalert2.min.css" integrity="sha256-qpXwccFYncH5gTqXFe9EXZ8QeDw1Re68bbNVfFZzIzg=" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="{{ mix('css/preload-back.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('css/preload-back.css') }}">
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
</head>
|
||||
<body>
|
||||
@include("layouts.frontend.header")
|
||||
@include('layouts.frontend.message')
|
||||
<!--@include('layouts.frontend.message')-->
|
||||
@yield('content')
|
||||
@include("layouts.frontend.footer")
|
||||
@stack('scriptsConstants')
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@
|
|||
@preload('mix-manifest.json')
|
||||
|
||||
<!-- STYLES -->
|
||||
<link rel="stylesheet" href="{{ mix('css/preload-front_login.css') }}">
|
||||
<link rel="stylesheet" href="{{ mix('css/preload-front.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('css/preload-front_login.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('css/preload-front.css') }}">
|
||||
<style>
|
||||
:root {
|
||||
@if(isset($societe->colors['primary']))
|
||||
|
|
@ -53,4 +53,4 @@
|
|||
}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'G-PTNNFW0ZE1');
|
||||
</script>
|
||||
</script>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
@if(session('message'))
|
||||
<div class="alertMessage">
|
||||
<div>
|
||||
{{ session('message') }}
|
||||
</div>
|
||||
@endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue