This commit is contained in:
Mathieu Lagace
2019-09-13 16:25:36 -04:00
parent b7c2b8a632
commit 7dedd9586b
30 changed files with 834 additions and 423 deletions

View File

@@ -22,12 +22,9 @@ class LoginController extends Controller
protected function redirectTo()
{
if(\Auth::User()->getAcces(2))
{
return '/admin';
} else if(\Auth::User()->getAcces(1)){
return '/ecc';
}
return '/admin';
}
/**
* Where to redirect users after login.

View File

@@ -84,7 +84,7 @@ class EventController extends Controller
}
}
clog('add','success','a ajouté un évènement',null,'App\Event',$event->id);
return redirect('/admin/calendar')->with('success','Événement ajouter à l\'horaire');
return redirect('/admin/schedule')->with('success','Événement ajouter à l\'horaire');
}
/**
@@ -175,7 +175,7 @@ class EventController extends Controller
}
}
clog('edit','success','a modifié un évènement',null,'App\Event',$event->id);
return redirect('/admin/calendar')->with('success','Modification à l\'événement sauvegarder à l\'horaire');
return redirect('/admin/schedule')->with('success','Modification à l\'événement sauvegarder à l\'horaire');
}
/**

View File

@@ -24,7 +24,7 @@ class RankController extends Controller
*/
public function create()
{
//
return view('admin.configs.ranks.add');
}
/**
@@ -35,7 +35,25 @@ class RankController extends Controller
*/
public function store(Request $request)
{
//
$r = new Rank();
$r->name = $request->name;
$r->desc = $request->desc;
$r->acces_level = 1;
$tpermission = [];
foreach (\App\Permission::all() as $perm)
{
$tkey = $perm->ckey;
$tpermission[$tkey] = $request->$tkey;
}
$r->permissions = json_encode($tpermission);
$r->save();
clog('add','success','Grade ajouté avec succès');
return redirect('/admin/config/ranks')->with('success','Grade ajouté avec succès');
}
/**
@@ -57,7 +75,7 @@ class RankController extends Controller
*/
public function edit(Rank $rank)
{
//
}
/**
@@ -67,9 +85,26 @@ class RankController extends Controller
* @param \App\Rank $rank
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Rank $rank)
public function update(Request $request, $rank)
{
//
$r = Rank::find($rank);
$r->name = $request->name;
$r->desc = $request->desc;
$tpermission = [];
foreach (\App\Permission::all() as $perm)
{
$tkey = $perm->ckey;
$tpermission[$tkey] = $request->$tkey;
}
$r->permissions = json_encode($tpermission);
$r->save();
clog('edit','success','Grade modifié avec succès');
return redirect('/admin/config/ranks')->with('success','Grade modifié avec succès');
}
/**

View File

@@ -69,7 +69,7 @@ class UserController extends Controller
}
$user->avatar = rand(1,16);
$user->rank = request('rank');
$user->rank_id = request('rank');
$user->job = request('job');
$user->password = bcrypt(request('psw'));
$user->api_token = str_random(60);
@@ -141,7 +141,7 @@ class UserController extends Controller
$user->age = request('age');
}
$user->rank = request('rank');
$user->rank_id = request('rank');
$user->job = request('job');
if (request('psw') != null) {
$user->password = bcrypt(request('psw'));
@@ -231,7 +231,7 @@ class UserController extends Controller
$user->save();
return back()->with('success', 'Modification enregistré');
return redirect('/admin/profil')->with('success', 'Modification enregistré');
}
public function UserAdress()
@@ -247,7 +247,7 @@ class UserController extends Controller
$user->save();
return back()->with('success', 'Modification enregistré');
return redirect('/admin/profil')->with('success', 'Modification enregistré');
}
public function apiList()

View File

@@ -61,5 +61,6 @@ class Kernel extends HttpKernel
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'staff' => \App\Http\Middleware\AccesStaff::class,
'admin' => \App\Http\Middleware\AccesAdmin::class,
'perm' => \App\Http\Middleware\CheckPerm::class,
];
}

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Http\Middleware;
use Closure;
class CheckPerm
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next,$permission)
{
if (\Auth::user()->p($permission) != 1)
{
clog('navigate','danger','L\'utilisateur n\'est pas autorisé à effectuer cette action',\Auth::user()->id);
return redirect('/admin')->with('error','Vous n\'êtes pas autorisé à effectuer cette action');
}
return $next($request);
}
}

View File

@@ -10,28 +10,28 @@ class Permission extends Model
const PERMISSIONS = [
'news' => [
'news_see' => [
'id' => 'news_see',
'ckey' => 'news_see',
'communName' => 'Voir les nouvelles',
'desc' => 'L\'utilisateur peut-il consulter les nouvelles',
'icon' => 'fa-eye',
'valeur' => 0
],
'news_add' => [
'id' => 'news_add',
'ckey' => 'news_add',
'communName' => 'Ajouter une nouvelles',
'desc' => 'L\'utilisateur peut-il ajouter une nouvelle',
'icon' => 'fa-plus',
'valeur' => 0
],
'news_edit' => [
'id' => 'news_edit',
'ckey' => 'news_edit',
'communName' => 'Modifier une nouvelles',
'desc' => 'L\'utilisateur peut-il modifier une nouvelle',
'icon' => 'fa-edit',
'valeur' => 0
],
'news_delete' => [
'id' => 'news_delete',
'ckey' => 'news_delete',
'communName' => 'Supprimer une nouvelles',
'desc' => 'L\'utilisateur peut-il supprimer une nouvelle',
'icon' => 'fa-close',
@@ -40,28 +40,28 @@ class Permission extends Model
],
'message' => [
'msg_see' => [
'id' => 'msg_see',
'ckey' => 'msg_see',
'communName' => 'Voir les messages',
'desc' => 'L\'utilisateur peut-il consulter les messages de la semaine',
'icon' => 'fa-eye',
'valeur' => 0
],
'msg_add' => [
'id' => 'msg_add',
'ckey' => 'msg_add',
'communName' => 'Ajouter un message',
'desc' => 'L\'utilisateur peut-il ajouter un message de la semaine',
'icon' => 'fa-eye',
'valeur' => 0
],
'msg_edit' => [
'id' => 'msg_edit',
'ckey' => 'msg_edit',
'communName' => 'Modifier un message',
'desc' => 'L\'utilisateur peut-il modifier les messages de la semaine',
'icon' => 'fa-eye',
'valeur' => 0
],
'msg_delete' => [
'id' => 'msg_delete',
'ckey' => 'msg_delete',
'communName' => 'Supprimer un message',
'desc' => 'L\'utilisateur peut-il supprimer un message de la semaine',
'icon' => 'fa-eye',
@@ -70,28 +70,28 @@ class Permission extends Model
],
'inventory' => [
'inventory_see' => [
'id' => 'inventory_see',
'ckey' => 'inventory_see',
'communName' => 'Voir l\'inventaire',
'desc' => 'L\'utilisateur peut-il consulter l\'inventaire',
'icon' => 'fa-eye',
'valeur' => 0
],
'inventory_add' => [
'id' => 'inventory_add',
'ckey' => 'inventory_add',
'communName' => 'Ajouter item a l\'inventaire',
'desc' => 'L\'utilisateur peut-il ajouter un item a l\'inventaire',
'icon' => 'fa-eye',
'valeur' => 0
],
'inventory_edit' => [
'id' => 'inventory_edit',
'ckey' => 'inventory_edit',
'communName' => 'Modifier un item de l\'inventaire',
'desc' => 'L\'utilisateur peut-il modifier un item de l\'inventaire',
'icon' => 'fa-eye',
'valeur' => 0
],
'inventory_delete' => [
'id' => 'inventory_delete',
'ckey' => 'inventory_delete',
'communName' => 'Supprimer un item de l\'inventaire',
'desc' => 'L\'utilisateur peut-il supprimer un item de l\'inventaire',
'icon' => 'fa-eye',
@@ -100,44 +100,182 @@ class Permission extends Model
],
'booking' => [
'booking_see' => [
'id' => 'booking_see',
'ckey' => 'booking_see',
'communName' => 'Voir les réservations',
'desc' => 'L\'utilisateur peut-il consulter la liste des réservations',
'icon' => 'fa-eye',
'valeur' => 0
],
'booking_see_self' => [
'id' => 'booking_see_self',
'communName' => 'Voir ses propres réservations',
'desc' => 'L\'utilisateur peut-il consulter la liste de ses réservations',
'icon' => 'fa-eye',
'valeur' => 0
],
'booking_add' => [
'id' => 'booking_add',
'communName' => 'Ajouter item a l\'inventaire',
'desc' => 'L\'utilisateur peut-il ajouter un item a l\'inventaire',
'ckey' => 'booking_add',
'communName' => 'Ajouter une réservation',
'desc' => 'L\'utilisateur peut-il ajouter une réservation',
'icon' => 'fa-eye',
'valeur' => 0
],
'booking_edit' => [
'id' => 'booking_edit',
'communName' => 'Modifier un item de l\'inventaire',
'desc' => 'L\'utilisateur peut-il modifier un item de l\'inventaire',
'ckey' => 'booking_edit',
'communName' => 'Modifier une réservation',
'desc' => 'L\'utilisateur peut-il modifier une réservation',
'icon' => 'fa-eye',
'valeur' => 0
],
'booking_delete' => [
'id' => 'booking_delete',
'communName' => 'Supprimer un item de l\'inventaire',
'desc' => 'L\'utilisateur peut-il supprimer un item de l\'inventaire',
'ckey' => 'booking_delete',
'communName' => 'Supprimer une réservation',
'desc' => 'L\'utilisateur peut-il supprimer une réservation',
'icon' => 'fa-eye',
'valeur' => 0
]
],
'user' => [
'user_see' => [
'ckey' => 'user_see',
'communName' => 'Voir la liste des utilisateurs',
'desc' => 'L\'utilisateur peut-il consulter la liste des utilisateurs',
'icon' => 'fa-eye',
'valeur' => 0
],
'user_add' => [
'ckey' => 'user_add',
'communName' => 'Ajouter un utilisateur',
'desc' => 'L\'utilisateur peut-il ajouter un autre utilisateur',
'icon' => 'fa-eye',
'valeur' => 0
],
'user_edit' => [
'ckey' => 'user_edit',
'communName' => 'Modifier un utilisateur',
'desc' => 'L\'utilisateur peut-il modifier un autre utilisateur',
'icon' => 'fa-eye',
'valeur' => 0
],
'user_delete' => [
'ckey' => 'user_delete',
'communName' => 'Supprimer un utilisateur',
'desc' => 'L\'utilisateur peut-il supprimer un autre utilisateur',
'icon' => 'fa-eye',
'valeur' => 0
],
],
'config' => [
'config_see' => [
'ckey' => 'config_see',
'communName' => 'Voir les configurations',
'desc' => 'L\'utilisateur peut-il consulter les configurations',
'icon' => 'fa-eye',
'valeur' => 0
],
'config_edit' => [
'ckey' => 'config_edit',
'communName' => 'Modifier les configurations',
'desc' => 'L\'utilisateur peut-il modifier les configurations',
'icon' => 'fa-eye',
'valeur' => 0
]
],
'statistique' => [
'stats_see' => [
'ckey' => 'stats_see',
'communName' => 'Voir les statistiques',
'desc' => 'L\'utilisateur peut-il consulter les statistiques',
'icon' => 'fa-eye',
'valeur' => 0
]
],
'schedule' => [
'schedule_see' => [
'ckey' => 'schedule_see',
'communName' => 'Voir l\'horaire',
'desc' => 'L\'utilisateur peut-il consulter l\'horaire',
'icon' => 'fa-eye',
'valeur' => 0
],
'schedule_add' => [
'ckey' => 'schedule_add',
'communName' => 'Ajouter un évènement à l\'horaire',
'desc' => 'L\'utilisateur peut-il ajouter un évènement à l\'horaire',
'icon' => 'fa-eye',
'valeur' => 0
],
'schedule_edit' => [
'ckey' => 'schedule_edit',
'communName' => 'Modifier un évènement à l\'horaire',
'desc' => 'L\'utilisateur peut-il modifier un évènement à l\'horaire',
'icon' => 'fa-eye',
'valeur' => 0
],
'schedule_delete' => [
'ckey' => 'schedule_delete',
'communName' => 'Supprimer un évènement à l\'horaire',
'desc' => 'L\'utilisateur peut-il supprimer un évènement à l\'horaire',
'icon' => 'fa-eye',
'valeur' => 0
]
],
'article' => [
'article_see' => [
'ckey' => 'article_see',
'communName' => 'Voir les articles',
'desc' => 'L\'utilisateur peut-il consulter les articles',
'icon' => 'fa-eye',
'valeur' => 0
],
'article_add' => [
'ckey' => 'article_add',
'communName' => 'Ajouter un article',
'desc' => 'L\'utilisateur peut-il ajouter un article',
'icon' => 'fa-eye',
'valeur' => 0
],
'article_edit' => [
'ckey' => 'article_edit',
'communName' => 'Modifier un article',
'desc' => 'L\'utilisateur peut-il modifier un évènement à l\'horaire',
'icon' => 'fa-eye',
'valeur' => 0
],
'article_delete' => [
'ckey' => 'article_delete',
'communName' => 'Supprimer un article',
'desc' => 'L\'utilisateur peut-il supprimer un article',
'icon' => 'fa-eye',
'valeur' => 0
],
],
'picture' => [
'picture_see' => [
'ckey' => 'picture_see',
'communName' => 'Voir les images',
'desc' => 'L\'utilisateur peut-il consulter les images',
'icon' => 'fa-eye',
'valeur' => 0
],
'picture_add' => [
'ckey' => 'picture_add',
'communName' => 'Ajouter une image',
'desc' => 'L\'utilisateur peut-il ajouter une image',
'icon' => 'fa-eye',
'valeur' => 0
],
'picture_edit' => [
'ckey' => 'picture_edit',
'communName' => 'Modifier une image',
'desc' => 'L\'utilisateur peut-il modifier une image',
'icon' => 'fa-eye',
'valeur' => 0
],
'picture_delete' => [
'ckey' => 'picture_delete',
'communName' => 'Supprimer une image',
'desc' => 'L\'utilisateur peut-il supprimer une image',
'icon' => 'fa-eye',
'valeur' => 0
],
]
];
public static function all($columns = null)
public static function all($value = null,$columns = null)
{
$permissions = collect();
@@ -146,11 +284,18 @@ class Permission extends Model
foreach ($cat as $c)
{
$p = new Permission();
$p->id = $c['id'];
$p->ckey = $c['ckey'];
$p->communName = $c['communName'];
$p->desc = $c['desc'];
$p->icon = $c['icon'];
$p->value = $c['valeur'];
if ($value == null)
{
$p->value = $c['valeur'];
}
else
{
$p->value = $value;
}
$permissions->push($p);
}
}
@@ -158,8 +303,19 @@ class Permission extends Model
return $permissions;
}
public static function allToString()
public static function allToArray()
{
return \GuzzleHttp\json_encode(Permission::all());
return self::PERMISSIONS;
}
public static function allToString($value = null)
{
$perm = [];
foreach (Permission::all($value) as $p)
{
$perm[$p->ckey] = $p->value;
}
return \GuzzleHttp\json_encode($perm);
}
}

View File

@@ -10,4 +10,22 @@ class Rank extends Model
{
return collect(json_decode($this->permissions,true));
}
public function permission($permission)
{
foreach ($this->permissions() as $perm => $value)
{
if ($permission == $perm)
{
return $value;
}
}
return 0;
}
public function p($perm)
{
return $this->permission($perm);
}
}

View File

@@ -27,6 +27,11 @@ class User extends Authenticatable
'password', 'remember_token',
];
public function rank()
{
return $this->belongsTo('App\Rank');
}
public function logs()
{
return $this->hasMany(Log::class);
@@ -279,4 +284,14 @@ class User extends Authenticatable
{
return $this->hasMany('App\News');
}
public function permission($perm)
{
return $this->rank->permission($perm);
}
public function p($perm)
{
return $this->permission($perm);
}
}

View File

@@ -19,7 +19,7 @@ class CreateUsersTable extends Migration
$table->string('lastname');
$table->string('email')->unique();
$table->string('password');
$table->string('rank')->default(1);
$table->string('rank_id')->default(1);
$table->string('adress')->default('unknown');
$table->string('telephone')->default('unknown');
$table->string('age');

View File

@@ -16,7 +16,7 @@ class RanksTableSeeder extends Seeder
'name' => "SuperAdmin",
'acces_level' => '2',
'desc' => 'Compte SuperAdmin donne toutes les permissions ne peux être modifié',
'permissions' => \App\Permission::allToString()
'permissions' => \App\Permission::allToString(1)
]
]);
}

View File

@@ -17,7 +17,7 @@ class UsersTableSeeder extends Seeder
'lastname' => 'Autre',
'email' => 'visiteur@exvps.ca',
'password' => bcrypt('f329er8kl2jHJGHdEj12567'),
'rank' => '1',
'rank_id' => '1',
'adress' => 'Inconnu',
'age' => '99',
'avatar' => '3',
@@ -30,7 +30,7 @@ class UsersTableSeeder extends Seeder
'lastname' => 'Administrateur',
'email' => 'admin@exvps.ca',
'password' => bcrypt('SuperAdmin'),
'rank' => '1',
'rank_id' => '1',
'adress' => 'Inconnu',
'age' => '99',
'avatar' => '3',

View File

@@ -24,8 +24,12 @@
<div class="row">
<div class="col-md-12">
<div class="btn-group w-100">
<a href="/admin/article/activity/edit/{{$a->id}}" type="button" class="btn btn-secondary btn-block"><i class="fa fa-cog"></i>&nbsp; Modifier l'article</a>
<a href="/admin/article/activity/picture/{{$a->id}}" type="button" class="btn btn-secondary btn-block"><i class="fa fa-picture-o"></i>&nbsp; Gérer les photos</a>
@if(\Auth::user()->p('article_edit') == 1)
<a href="/admin/article/activity/edit/{{$a->id}}" type="button" class="btn btn-secondary btn-block"><i class="fa fa-cog"></i>&nbsp; Modifier l'article</a>
@endif
@if(\Auth::user()->p('article_edit') == 1 && \Auth::user()->p('picture_add'))
<a href="/admin/article/activity/picture/{{$a->id}}" type="button" class="btn btn-secondary btn-block"><i class="fa fa-picture-o"></i>&nbsp; Gérer les photos</a>
@endif
</div>
</div>
<div class="col-md-12">

View File

@@ -0,0 +1,87 @@
@extends('layouts.admin.main')
@section('content')
<div class="col-md-12">
<div class="card">
<div class="card-header card-header-primary">
<h4>Ajouter un grade</h4>
</div>
<div class="card-body mt-5">
<form method="post" action="/admin/config/ranks/add">
@csrf
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label>Nom</label>
<input class="form-control" type="text" name="name">
<small class="form-text text-muted">Nom du grade</small>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<label>Description</label>
<textarea id="desc" name="desc"></textarea>
<small class="form-text text-muted">Description du grade</small>
</div>
</div>
<hr>
<div class="col-md-12">
<h3>Permissions du Grade</h3>
<p>
Choisissez quels permissions doivent être associé avec ce grade.
</p>
<div id="accordion" role="tablist">
@foreach(\App\Permission::allToArray() as $key => $cat)
<div class="card card-collapse">
<div class="card-header" role="tab" id="headingOne">
<h5 class="mb-0">
<a class="text-capitalize" data-toggle="collapse" href="#coll-{{$key}}" @if ($loop->first) aria-expanded="true" @endif aria-controls="collapseOne">
{{$key}}
<i class="material-icons">keyboard_arrow_down</i>
</a>
</h5>
</div>
<div id="coll-{{$key}}" class="collapse @if ($loop->first) show @endif" role="tabpanel" aria-labelledby="headingOne" data-parent="#accordion">
<div class="card-body">
<div class="row">
@foreach($cat as $r)
<div class="col text-center">
<input class="d-none" type="text" id="{{$r['ckey']}}" name="{{$r['ckey']}}">
<h5>{{$r['communName']}}</h5>
<div class="btn-group">
<button type="button" id="{{$r['ckey']}}-close" class="btn btn-just-icon btn-outline-danger" onclick="switchPermissionSwitch('{{$r['ckey']}}','close')"><i class="fa fa-close"></i></button>
<!--<button type="button" id="{{$r['ckey']}}-slash" class="btn btn-just-icon btn-warning" onclick="switchPermissionSwitch('{{$r['ckey']}}','slash')"><i class="fa fa-slash"></i></button>-->
<button type="button" id="{{$r['ckey']}}-plus" class="btn btn-just-icon btn-outline-success" onclick="switchPermissionSwitch('{{$r['ckey']}}','plus')"><i class="fa fa-plus"></i></button>
</div>
<p>
<small>{{$r['desc']}}</small>
</p>
</div>
@endforeach
</div>
</div>
</div>
</div>
@endforeach
</div>
</div>
<div class="col-md-12 mt-5">
<button type="submit" class="btn btn-primary">Sauvegarder</button>
</div>
</div>
</form>
</div>
</div>
</div>
@endsection
@section('custom_scripts')
<script src="/js/permissions.js"></script>
<script>
$('#desc').trumbowyg({
lang: 'fr'
});
</script>
@endsection

View File

@@ -32,7 +32,7 @@
Choisissez quels permissions doivent être associé avec ce grade.
</p>
<div id="accordion" role="tablist">
@foreach(\App\Permission::all() as $key => $cat)
@foreach(\App\Permission::allToArray() as $key => $cat)
<div class="card card-collapse">
<div class="card-header" role="tab" id="headingOne">
<h5 class="mb-0">
@@ -46,17 +46,17 @@
<div id="coll-{{$key}}" class="collapse @if ($loop->first) show @endif" role="tabpanel" aria-labelledby="headingOne" data-parent="#accordion">
<div class="card-body">
<div class="row">
@foreach($cat as $rank)
@foreach($cat as $r)
<div class="col text-center">
<input class="d-none" type="text" id="{{$rank['id']}}" name="{{$rank['id']}}" value="0">
<h5>{{$rank['communName']}}</h5>
<input class="d-none" type="text" id="{{$r['ckey']}}" name="{{$r['ckey']}}" value="{{$rank->p($r['ckey'])}}">
<h5>{{$r['communName']}}</h5>
<div class="btn-group">
<button type="button" id="{{$rank['id']}}-close" class="btn btn-just-icon btn-outline-danger" onclick="switchPermissionSwitch('{{$rank['id']}}','close')"><i class="fa fa-close"></i></button>
<button type="button" id="{{$rank['id']}}-slash" class="btn btn-just-icon btn-warning" onclick="switchPermissionSwitch('{{$rank['id']}}','slash')"><i class="fa fa-slash"></i></button>
<button type="button" id="{{$rank['id']}}-plus" class="btn btn-just-icon btn-outline-success" onclick="switchPermissionSwitch('{{$rank['id']}}','plus')"><i class="fa fa-plus"></i></button>
<button type="button" id="{{$r['ckey']}}-close" class="btn btn-just-icon @if($rank->p($r['ckey']) != -1) btn-outline-danger @else btn-danger @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','close')"><i class="fa fa-close"></i></button>
<!--<button type="button" id="{{$r['ckey']}}-slash" class="btn btn-just-icon @if($rank->p($r['ckey']) == 0) btn-warning @else btn-outline-warning @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','slash')"><i class="fa fa-slash"></i></button>-->
<button type="button" id="{{$r['ckey']}}-plus" class="btn btn-just-icon @if($rank->p($r['ckey']) != 1) btn-outline-success @else btn-success @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','plus')"><i class="fa fa-plus"></i></button>
</div>
<p>
<small>{{$rank['desc']}}</small>
<small>{{$r['desc']}}</small>
</p>
</div>
@endforeach

View File

@@ -1,162 +1,137 @@
@extends('layouts.admin.main')
@section('content')
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header card-header-primary">
<h4 class="card-title"> Cours à venir</h4>
</div>
<div class="card-body">
@if(count($userClasse) == 0)
<div class="col-sm-12">
<div class="alert alert-info alert-with-icon">
<span data-notify="icon" class="ti-alert"></span>
<span data-notify="message">Aucun cours à venir</span>
</div>
</div>
@endif
@foreach ($userClasse as $classe)
<div class="col-sm-6">
@if ($classe['plan_done'] == "on")
<div class="alert alert-success alert-with-icon">
<span data-notify="icon" class="ti-crown"></span>
<span data-notify="message">Le cours {{$classe['ocom']}} - {{$classe['name']}} du {{$classe['date']}} est remis.<br>
@if ($classe['material'] != "")
- Vous avez réservé
@foreach (\App\Item::explodeItems($classe['material']) as $item)
@if (\App\Item::explodeItems($classe['material'])->last() == $item && \App\Item::explodeItems($classe['material'])->first() != $item)
et
@endif
{{$item->name}}
@endforeach
@else
- Aucun matériel réservé
@endif
</span>
</div>
@else
<div class="alert alert-warning alert-with-icon">
<span data-notify="icon" class="ti-alert"></span>
<span data-notify="message">Le cours {{$classe['ocom']}} - {{$classe['name']}} du {{$classe['date']}} n'est pas remis.<br>
@if ($classe['material'] != "")
- Vous avez réservé
@foreach (\App\Item::explodeItems($classe['material']) as $item)
@if (\App\Item::explodeItems($classe['material'])->last() == $item && \App\Item::explodeItems($classe['material'])->first() != $item)
et
@endif
{{$item->name}}
@endforeach
@else
- Aucun matériel réservé
@endif
</span>
</div>
@endif
</div>
@endforeach
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6 col-lg-6">
<div class="card">
<div class="card-header card-header-primary">
<h4 class="card-title">Activité à venir</h4>
</div>
<div class="card-body">
<div class="row">
@if(count($futureEvent) == 0)
<div class="col-sm-12">
<div class="alert alert-infi alert-with-icon">
<span data-notify="icon" class="ti-alert"></span>
<span data-notify="message">Aucune activité à venir</span>
</div>
</div>
@endif
@foreach ($futureEvent as $event)
<div class="col-md-12">
<div class="alert" style="background-color: {{\App\ComplementaryActivity::find($event->type)->calendar_color}}">
<div class="row text-white">
<div class="col-md-2 text-capitalize m-auto d-none d-md-flex">
<h3 class="m-0 p-0" style="margin-top: -0.5rem !important;">{!! \App\ComplementaryActivity::find($event->type)->calendar_icon !!}</h3>
</div>
<div class="col-md">
{{$event->name}}
</div>
<div class="col-md-4">
{{$event->date_begin}}
</div>
</div>
</div>
</div>
@endforeach
</div>
<br>
<a href="/admin/calendar" type="button" class="btn btn-primary btn-lg btn-block">Afficher plus</a>
</div>
</div>
</div>
<div class="col-sm-6 col-lg-6">
<div class="card">
<div class="card-header card-header-primary">
<h4 class="card-title">Activité sur le site</h4>
</div>
<div class="card-body">
@foreach (\App\Log::all()->forPage(1,3); as $event)
<i class="fa fa-arrow-right" aria-hidden="true"></i> {{$event->action}}<br>
@endforeach
<br>
<a href="/admin/stats/log" type="button" class="btn btn-primary btn-lg btn-block text-white">Afficher plus</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-8 col-md-12">
<div class="card">
<div class="card-header card-header-primary">
<h4 class="card-title">Message publié</h4>
</div>
<div class="card-body">
<div class="row">
@foreach (\App\Message::all()->forPage(1,4); as $msg)
<div class="col-lg-6 text-center">
<a href="/admin/message/{{$msg->id}}">
<div style="height:2rem;">{{$msg->title}}</div>
<br>
<div class="msg-body" style="height:12rem;overflow:hidden">
{!!$msg->body!!}
</div>
<br>
</a>
</div>
@endforeach
<div class="col-md-12">
<div class="card">
<div class="card-header card-header-primary">
<h4 class="card-title"> Cours à venir</h4>
</div>
<div class="card-body">
@if(\Auth::user()->courses->isEmpty())
<div class="col-sm-12 text-center">
<h4 class="m-4">Aucun cours à venir</h4>
</div>
@endif
@foreach (\Auth::user()->courses->take(6) as $course)
<div class="col-sm-6">
<div class="card">
<div class="card-body">
<h4><strong>{{$course->ocom}} - {{$course->name}}</strong></h4>
<p class="float-left">{{date('Y-m-d',strtotime($course->event->date_begin))}}</p>
<p class="float-right">Période {{$course->periode}}, Niveau {{$course->level}}</p>
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
<div class="col-md-12">
<div class="card">
<div class="card-header card-header-primary">
<h4 class="card-title">Activité à venir</h4>
</div>
<div class="card-body">
<div class="row">
@if(count($futureEvent) == 0)
<div class="col-sm-12 text-center">
<h4 class="m-4">Aucune activité à venir</h4>
</div>
@endif
@foreach ($futureEvent as $event)
<div class="col-md-12">
<div class="alert" style="background-color: {{\App\ComplementaryActivity::find($event->type)->calendar_color}}">
<div class="row text-white">
<div class="col-md-2 text-capitalize m-auto d-none d-md-flex">
<h3 class="m-0 p-0" style="margin-top: -0.5rem !important;">{!! \App\ComplementaryActivity::find($event->type)->calendar_icon !!}</h3>
</div>
<div class="col-md">
{{$event->name}}
</div>
<div class="col-md-4">
{{$event->date_begin}}
</div>
</div>
</div>
</div>
@endforeach
</div>
<br>
<a href="/admin/schedule" type="button" class="btn btn-primary btn-lg btn-block">Afficher plus</a>
</div>
<br>
<a href="/admin/message" type="button" class="btn btn-primary btn-lg btn-block text-white">Afficher plus</a>
</div>
</div>
</div>
<div class="col-sm-4 col-lg-4">
<div class="card card-profile">
<div class="card-avatar">
<a>
<img class="img" src="/assets/admin/images/avatar/user-{{\Auth::User()->avatar}}.jpg">
</a>
</div>
<div class="card-body">
<div class="mx-auto d-block">
<h5 class="text-sm-center mt-2 mb-1">{{\Auth::User()->fullname()}}</h5>
<div class="location text-sm-center"><i class="fa fa-id-card-o" aria-hidden="true"></i> {{\App\Rank::find(\Auth::User()->rank)->name}}</div>
<div class="col-lg-4">
<div class="col-12">
<div class="card card-profile">
<div class="card-avatar">
<a>
<img class="img" src="/assets/admin/images/avatar/user-{{\Auth::User()->avatar}}.jpg">
</a>
</div>
<hr>
<div class="card-text text-sm-center">
<a class="btn btn-block btn-secondary" href="/admin/profil">Profil</a>
<div class="card-body">
<div class="mx-auto d-block">
<h5 class="text-sm-center mt-2 mb-1">{{\Auth::User()->fullname()}}</h5>
<div class="location text-sm-center"><i class="fa fa-id-card-o" aria-hidden="true"></i> {{\Auth::User()->rank->name}}</div>
</div>
<hr>
<div class="card-text text-sm-center">
<a class="btn btn-block btn-secondary" href="/admin/profil">Profil</a>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="card">
<div class="card-header card-header-info">
<h4 class="card-title">Nouvelles</h4>
</div>
<div class="card-body">
<div class="row">
@foreach (\App\News::all()->forPage(1,4); as $msg)
<div class="col-12 text-center">
<a href="/admin/message/{{$msg->id}}">
<div style="height:2rem;">{{$msg->title}}</div>
<br>
<div class="msg-body" style="height:12rem;overflow:hidden">
{!!$msg->body!!}
</div>
<br>
</a>
</div>
@endforeach
</div>
<br>
<a href="/admin/news" type="button" class="btn btn-primary btn-lg btn-block text-white">Afficher plus</a>
</div>
</div>
</div>
@if(\Auth::user()->p('stats_see') == 1)
<div class="col-12">
<div class="card">
<div class="card-header card-header-primary">
<h4 class="card-title">Activité sur le site</h4>
</div>
<div class="card-body">
@foreach (\App\Log::all()->forPage(1,3); as $log)
<div class="row mt-3">
<div class="col-lg-12 col-xl-3 mx-3 my-auto">
<span class="badge badge-pill badge-{{$log->typeColor()}} mr-2">{{$log->type}}</span>
</div>
<div class="col">
{{$log->user->fullname()}} - {{$log->event}}
</div>
</div>
@endforeach
<br>
<a href="/admin/stats/log" type="button" class="btn btn-primary btn-lg btn-block text-white">Afficher plus</a>
</div>
</div>
</div>
@endif
</div>
</div>
@endsection

View File

@@ -9,7 +9,9 @@
</div>
<div class="card-body">
<div class="btn-group btn-block">
<a name="add" id="add" class="btn btn-primary btn-block" href="/admin/item/add" role="button">Ajouter un item</a>
@if(\Auth::user()->p('inventory_add') == 1)
<a name="add" id="add" class="btn btn-primary btn-block" href="/admin/item/add" role="button">Ajouter un item</a>
@endif
</div>
<hr>
<table id="log-data" class="table table-striped table-bordered">
@@ -35,8 +37,12 @@
<td>{!! $item->desc !!}</td>
<td style="width: 12%;">
<div class="btn-group">
@if(\Auth::user()->p('inventory_edit') == 1)
<a href="/admin/item/edit/{{$item->id}}" type="button" class="btn btn-secondary"><i class="fa fa-cog"></i>&nbsp; Modifier</a>
<a type="button" class="btn btn-danger" onclick="deleteEvent({{$item->id}});"><i class="fa fa-times-circle" style="color:white;"></i></a>
@endif
@if(\Auth::user()->p('inventory_delete') == 1)
<a type="button" class="btn btn-danger" onclick="deleteEvent({{$item->id}});"><i class="fa fa-times-circle" style="color:white;"></i></a>
@endif
</div>
</td>
</tr>

View File

@@ -8,8 +8,6 @@
</a></strong>
</div>
<div class="card-body">
<button type="button" class="btn btn-primary btn-lg btn-block">Afficher toutes les activitées</button>
<hr>
<div class="material-datatables">
<table id="log-data" class="table table-striped table-no-bordered table-hover dataTable dtr-inline">
<thead>
@@ -26,7 +24,7 @@
<tr>
<td>{{$item->created_at}}</td>
<th><span class="badge badge-pill badge-{{$item->typeColor()}}">{{$item->type}}</span></th>
<th><span class="badge badge-pill badge-{{$item->result}}">Success</span></th>
<th><span class="badge badge-pill badge-{{$item->result}} text-uppercase">{{$item->result}}</span></th>
<td>{{\App\User::find($item->user_id)->fullname()}}</td>
<td><a href="">{{$item->event}}</a></td>
</tr>

View File

@@ -9,10 +9,17 @@
</div>
<div class="card-body">
<div class="btn-group btn-block">
<a name="add" id="add" class="btn btn-primary btn-block" href="/admin/news/add" role="button">Ajouter un nouvelle</a>
@if(\Auth::user()->p('news_add') == 1)
<a name="add" id="add" class="btn btn-primary btn-block" href="/admin/news/add" role="button">Ajouter un nouvelle</a>
@endif
</div>
<hr>
<div class="row">
@if($news->isEmpty())
<div class="col-md-12 text-center">
<h4 class="m-4">Aucune nouvelle</h4>
</div>
@endif
@foreach($news as $n)
<div class="col-md-4">
<div class="card">
@@ -26,8 +33,12 @@
</div>
<div class="card-footer">
<div class="btn-group">
<a href="/admin/news/edit/{{$n->id}}" type="button" class="btn btn-secondary"><i class="fa fa-cog"></i>&nbsp; Modifier</a>
<a type="button" class="btn btn-danger" onclick="deleteEvent({{$n->id}});"><i class="fa fa-times-circle" style="color:white;"></i></a>
@if(\Auth::user()->p('news_edit') == 1)
<a href="/admin/news/edit/{{$n->id}}" type="button" class="btn btn-secondary"><i class="fa fa-cog"></i>&nbsp; Modifier</a>
@endif
@if(\Auth::user()->p('news_delete') == 1)
<a type="button" class="btn btn-danger" onclick="deleteEvent({{$n->id}});"><i class="fa fa-times-circle" style="color:white;"></i></a>
@endif
</div>
</div>
</div>

View File

@@ -2,6 +2,113 @@
@section('content')
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<div class="row">
<div class="col-sm-6">
<h3 class="card-title">3.2.3</h3>
<p class="category">2019-09-13</p>
</div>
<div class="col-sm-6 text-right">
<span class="badge badge-pill badge-success">STABLE</span>
</div>
</div>
</div>
<div class="card-body">
<div class="alert alert-danger" role="alert">
<i class="fas fa-exclamation-triangle text-white fa-2x mr-3"></i>La gestion des postes est <strong>DÉSACTIVÉ</strong> le temps de moderniser la base de donnée
</div>
<div class="row">
<div class="col-md-6">
<p>
Nouveauté
<ul class="list-group list-group-flush ml-3">
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-coffee"></i>
</div>
<div class="col m-auto text-left">
La gestion des grades est maintenant possible.
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-coffee"></i>
</div>
<div class="col m-auto text-left">
Refonte du code responsable de la gestion des grades
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-coffee"></i>
</div>
<div class="col m-auto text-left">
Modernisation de la base de données des grades
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-coffee"></i>
</div>
<div class="col m-auto text-left">
Suppression de L'ECC au profit d'un nouveau systeme de permission. Le grade et les permissions du grade définissent ce que peux faire un utilisateur sur le site.
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-plus"></i>
</div>
<div class="col m-auto text-left">
Ajout de la possibilité d'imprimer une activité depuis l'horaire
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-plus"></i>
</div>
<div class="col m-auto text-left">
Ajout de la possibilité de réserver du matériel depuis l'horaire
</div>
</div>
</li>
</ul>
</p>
</div>
<div class="col-md-6">
<p>
Bug
<ul class="list-group list-group-flush ml-3">
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-bug"></i>
</div>
<div class="col m-auto text-left">
Correction de <a href="https://op.exvps.ca/versions/8">4 bugs</a>
</div>
</div>
</li>
</ul>
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="card">
<div class="card-header">

View File

@@ -95,7 +95,7 @@
<div class="form-group">
<label for="rank">Grade</label>
<select class="form-control" name="rank" id="rank" required>
<option value={{$user->rank}}>{{\App\Rank::find($user->rank)->name}}</option>
<option value={{$user->rank->id}}>{{$user->rank->name}}</option>
@foreach ($RankList as $rank)
<option value="{{$rank->id}}">{{$rank->name}}</option>
@endforeach

View File

@@ -22,7 +22,7 @@
<tr>
<td style="width: 5%;">{{$item->id}}</td>
<td>{{$item->fullname()}}</td>
<td>{{\App\Rank::find($item->rank)->name}}</td>
<td>{{$item->rank->name}}</td>
<td>{{\App\Job::find($item->job)->name}}</td>
<td class="td-actions text-right" style="width: 12%;">
<a class="btn btn-info p-2 text-white" href="/admin/user/edit/{{$item->id}}"><i class="material-icons">edit</i></a>

View File

@@ -10,7 +10,7 @@
<div class="mx-auto d-block">
<img class="rounded-circle mx-auto d-block" src="/assets/admin/images/avatar/user-{{\Auth::User()->avatar}}.jpg" alt="Card image cap" style="height:12rem">
<h5 class="text-sm-center mt-2 mb-1">{{\Auth::User()->fullname()}}</h5>
<div class="location text-sm-center"><i class="fa fa-id-card-o" aria-hidden="true"></i> {{\App\Rank::find(\Auth::User()->rank)->name}}</div>
<div class="location text-sm-center"><i class="fa fa-id-card-o" aria-hidden="true"></i> {{\Auth::User()->rank->name}}</div>
</div>
</div>
<div class="col-sm-6 text-center">

View File

@@ -24,11 +24,11 @@
</div>
<div class="form-group">
<label for="pws">Entrer votre nouveau mot de passe</label>
<input type="password" class="form-control" name="psw" id="psw" placeholder="Mot de passe" onkeyup="checkPassword()">
<input type="password" class="form-control" name="psw" id="psw" onkeyup="checkPassword()">
</div>
<div class="form-group">
<label for="pwsc">Confirmer votre nouveau mot de passe</label>
<input type="password" class="form-control" name="pswc" id="pswc" placeholder="Mot de passe" onkeyup="checkPassword()">
<input type="password" class="form-control" name="pswc" id="pswc" onkeyup="checkPassword()">
</div>
<button type="submit" id="submit" class="btn btn-primary" disabled>Enregistrer</button>
</form>

View File

@@ -64,6 +64,13 @@
}, false);
</script>
@endif
@if (session('danger'))
<script>
document.addEventListener('DOMContentLoaded', function() {
showNotification('error','{{ session('error') }}','top', 'center')
}, false);
</script>
@endif
@if (session('warning'))
<script>
document.addEventListener('DOMContentLoaded', function() {

View File

@@ -1,6 +1,7 @@
<?php
use App\Notifications\Alert;
setlocale(LC_ALL,'fr');
?>
<!doctype html>

View File

@@ -15,9 +15,8 @@
<p> Dashboard </p>
</a>
</li>
<h6 class="ml-4 mt-5" style="color:white">
Espace Cadet Cadre
</h6>
<hr>
@if(\Auth::user()->p('msg_see') == 12)
<li class="nav-item ">
<a class="nav-link" data-toggle="collapse" href="#message">
<i class="material-icons">email</i>
@@ -33,78 +32,77 @@
<span class="sidebar-normal"> Afficher les messages </span>
</a>
</li>
@if(\Auth::user()->p('msg_add') == 1)
<li class="nav-item ">
<a class="nav-link" href="/admin/message/add">
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
<span class="sidebar-normal"> Ajouter un message </span>
</a>
</li>
@endif
@if(\Auth::user()->p('msg_delete') == 1)
<li class="nav-item ">
<a class="nav-link" href="/admin/message">
<span class="sidebar-mini"> <i class="fas fa-times"></i> </span>
<span class="sidebar-normal"> Supprimer un message </span>
</a>
</li>
@endif
</ul>
</div>
</li>
<li class="nav-item ">
<a class="nav-link" href="/admin/files">
<i class="material-icons">folder</i>
<p> Fichier</p>
</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="/admin/guide">
<i class="material-icons">library_books</i>
<p> Guide pédagogique</p>
</a>
</li>
<h6 class="ml-4 mt-5" style="color:white">
Espace Administration
</h6>
<li class="nav-item ">
<a class="nav-link" href="/admin/calendar">
<i class="material-icons">calendar_today</i>
<p> Horaire</p>
</a>
</li>
<li class="nav-item ">
<a class="nav-link" data-toggle="collapse" href="#news">
<i class="material-icons">new_releases</i>
<p> Nouvelles
<b class="caret"></b>
</p>
</a>
<div class="collapse" id="news">
<ul class="nav">
<li class="nav-item ">
<a class="nav-link" href="/admin/news">
<span class="sidebar-mini"> <i class="fas fa-eye"></i> </span>
<span class="sidebar-normal"> Voir les nouvelles </span>
</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="/admin/news/add">
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
<span class="sidebar-normal"> Ajouter une nouvelle </span>
</a>
</li>
@endif
@if(\Auth::user()->p('news_see') == 1)
<li class="nav-item ">
<a class="nav-link" data-toggle="collapse" href="#news">
<i class="material-icons">new_releases</i>
<p> Nouvelles
<b class="caret"></b>
</p>
</a>
<div class="collapse" id="news">
<ul class="nav">
<li class="nav-item ">
<a class="nav-link" href="/admin/news">
<span class="sidebar-mini"> <i class="fas fa-eye"></i> </span>
<span class="sidebar-normal"> Voir les nouvelles </span>
</a>
</li>
@if(\Auth::user()->p('news_add') == 1)
<li class="nav-item ">
<a class="nav-link" href="/admin/news/add">
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
<span class="sidebar-normal"> Ajouter une nouvelle </span>
</a>
</li>
@endif
<!--<li class="nav-item ">
<a class="nav-link" href="/admin/inventory/booking">
<span class="sidebar-mini"> <i class="fas fa-bookmark"></i> </span>
<span class="sidebar-normal"> Réservation</span>
</a>
</li>-->
</ul>
</div>
</ul>
</div>
</li>
@endif
@if(\Auth::user()->p('schedule_see') == 1)
<li class="nav-item ">
<a class="nav-link" href="/admin/schedule">
<i class="material-icons">calendar_today</i>
<p> Horaire</p>
</a>
</li>
@endif
@if(\Auth::user()->p('article_see') == 1)
<li class="nav-item ">
<a class="nav-link" href="/admin/article">
<i class="material-icons">description</i>
<p> Articles</p>
</a>
</li>
@endif
@if(\Auth::user()->p('inventory_see') == 1)
<li class="nav-item ">
<a class="nav-link" data-toggle="collapse" href="#inventory">
<i class="material-icons">shopping_basket</i>
@@ -120,12 +118,14 @@
<span class="sidebar-normal"> Voir l'inventaire </span>
</a>
</li>
@if(\Auth::user()->p('inventory_edit') == 1)
<li class="nav-item ">
<a class="nav-link" href="/admin/inventory/management">
<span class="sidebar-mini"> <i class="fas fa-cogs"></i> </span>
<span class="sidebar-normal"> Gestion de l'inventaire </span>
</a>
</li>
@endif
<!--<li class="nav-item ">
<a class="nav-link" href="/admin/inventory/booking">
<span class="sidebar-mini"> <i class="fas fa-bookmark"></i> </span>
@@ -135,6 +135,8 @@
</ul>
</div>
</li>
@endif
@if(\Auth::user()->p('picture_see') == 1)
<li class="nav-item ">
<a class="nav-link" data-toggle="collapse" href="#picture">
<i class="material-icons">image</i>
@@ -150,15 +152,19 @@
<span class="sidebar-normal"> Afficher toutes les images </span>
</a>
</li>
@if(\Auth::user()->p('picture_add') == 1)
<li class="nav-item ">
<a class="nav-link" href="/admin/picture/add">
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
<span class="sidebar-normal"> Ajouter une image </span>
</a>
</li>
@endif
</ul>
</div>
</li>
@endif
@if(\Auth::user()->p('stats_see') == 1)
<li class="nav-item ">
<a class="nav-link" data-toggle="collapse" href="#stats">
<i class="material-icons">timeline</i>
@@ -177,6 +183,8 @@
</ul>
</div>
</li>
@endif
@if(\Auth::user()->p('user_see') == 1)
<li class="nav-item ">
<a class="nav-link" data-toggle="collapse" href="#user">
<i class="material-icons">supervised_user_circle</i>
@@ -186,12 +194,14 @@
</a>
<div class="collapse" id="user">
<ul class="nav">
@if(\Auth::user()->p('user_add') == 1)
<li class="nav-item ">
<a class="nav-link" href="/admin/user/add">
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
<span class="sidebar-normal"> Ajouter un utilisateur </span>
</a>
</li>
@endif
<li class="nav-item ">
<a class="nav-link" href="/admin/user">
<span class="sidebar-mini"> <i class="fas fa-list"></i> </span>
@@ -201,6 +211,20 @@
</ul>
</div>
</li>
@endif
<li class="nav-item ">
<a class="nav-link" href="/admin/files">
<i class="material-icons">folder</i>
<p> Fichier</p>
</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="/admin/guide">
<i class="material-icons">library_books</i>
<p> Guide pédagogique</p>
</a>
</li>
@if(\Auth::user()->p('config_edit') == 1)
<li class="nav-item ">
<a class="nav-link" data-toggle="collapse" href="#config">
<i class="material-icons">settings</i>
@@ -249,6 +273,7 @@
</ul>
</div>
</li>
@endif
<h6 class="ml-4 mt-5" style="color:white">
Outils
</h6>

View File

@@ -12,9 +12,13 @@
<div class="modal-footer">
<div class="col-md-6">
<div class="btn-group">
@if(\Auth::user()->p('schedule_edit') == 1)
<a class="btn btn-primary" href="/admin/schedule/edit/{{$event->id}}" data-toggle="tooltip" data-placement="bottom" title="Modifier"><i class="material-icons">edit</i></a>
@endif
<a class="btn btn-primary" href="/admin/schedule/pdf/event/{{$event->id}}" target="_blank" data-toggle="tooltip" data-placement="bottom" title="Imprimer"><i class="material-icons">print</i></a>
<button class="btn btn-danger" data-toggle="tooltip" data-placement="bottom" title="Supprimer" onclick="deleteEvent({{$event->id}})"><i class="material-icons">close</i></button>
@if(\Auth::user()->p('schedule_delete') == 1)
<button class="btn btn-danger" data-toggle="tooltip" data-placement="bottom" title="Supprimer" onclick="deleteEvent({{$event->id}})"><i class="material-icons">close</i></button>
@endif
</div>
</div>
<div class="col-md-6 text-right">

View File

@@ -20,47 +20,41 @@ Route::middleware('auth:api')->group(function () {
return $request->user();
});
/** Calendar Route */
Route::post('/calendar/generate', 'CalendarController@generate');
Route::post('/calendar_ecc/generate', 'ECCController@generateCalendar');
Route::post('/calendar/loadDay', 'CalendarController@show');
Route::post('/calendar/delete', 'CalendarController@delete');
Route::get('/schedule/events/modal/full/{id}/{db_type}','ScheduleController@loadModalFull');
Route::get('/schedule/events/add/modal/{type}/{date}','ScheduleController@loadModalDefautType');
Route::post('/schedule/event/delete/{id}','ScheduleController@delete');
Route::get('/schedule/events/modal/full/{id}/{db_type}','ScheduleController@loadModalFull')->middleware('perm:schedule_see');
Route::get('/schedule/events/add/modal/{type}/{date}','ScheduleController@loadModalDefautType')->middleware('perm:schedule_add');
Route::post('/schedule/event/delete/{id}','ScheduleController@delete')->middleware('perm:schedule_delete');
/** Booking */
Route::get('/booking/modal/item/{id}/{event_type}/{event_id}','BookingController@modalItem');
Route::get('/booking/modal/edit/item/{id}/{event_type}/{event_id}','BookingController@modalItemEdit');
Route::post('/booking/delete','BookingController@destroy');
Route::get('/booking/modal/item/{id}/{event_type}/{event_id}','BookingController@modalItem')->middleware('perm:booking_see');
Route::get('/booking/modal/edit/item/{id}/{event_type}/{event_id}','BookingController@modalItemEdit')->middleware('perm:booking_edit');
Route::post('/booking/delete','BookingController@destroy')->middleware('perm:booking_delete');
/** Picture */
Route::post('/picture/delete/{id}','PictureController@destroy');
Route::post('/picture/delete/{id}','PictureController@destroy')->middleware('perm:picture_delete');
/** Message Route */
Route::post('/message/delete', 'MessageController@destroy');
Route::post('/message/delete', 'MessageController@destroy')->middleware('perm:msg_delete');
/** News Route */
Route::post('/news/delete','NewsController@destroy');
Route::post('/news/delete','NewsController@destroy')->middleware('perm:news_delete');
/** User Route */
Route::post('/user/delete', 'UserController@destroy');
Route::get('/user/list', 'UserController@apiList');
Route::post('/user/delete', 'UserController@destroy')->middleware('perm:user_delete');
Route::get('/user/list', 'UserController@apiList')->middleware('perm:user_see');
/** Inventory Route */
Route::post('/item/delete', 'ItemController@destroy');
Route::post('/item/delete', 'ItemController@destroy')->middleware('perm:inventory_delete');
/** Item Category */
Route::post('/itemcategory/delete/{id}','ItemCategoryController@destroy');
Route::post('/itemcategory/delete/{id}','ItemCategoryController@destroy')->middleware('perm:inventory_edit');
/** Config Route */
Route::post('/config/general/save', 'ConfigController@update');
Route::post('/config/activity/delete', 'ComplementaryActivityController@destroy');
Route::post('/config/general/save', 'ConfigController@update')->middleware('perm:config_edit');
Route::post('/config/activity/delete', 'ComplementaryActivityController@destroy')->middleware('perm:config_delete');
Route::get('/user/perm/{id}', function($id) {
$user = \App\User::find($id);
return $user->getPerm("schedule_edit");
});
})->middleware('perm:user_see');
});
Route::get('/admin/ping', function(){
$users = \App\User::all();
@@ -84,25 +78,3 @@ Route::get('/admin/ping', function(){
return "pong";
}
});
Route::get('/ecc/ping', function(){
$users = \App\User::all();
$schedules = \App\Schedule::all();
$oups = false;
foreach ($users as $user) {
if($user == null){
$oups = true;
}
}
foreach ($schedules as $schedule) {
if($schedule == null){
$oups = true;
}
}
if ($oups) {
return "oups";
} else {
return "pong";
}
});

View File

@@ -31,7 +31,7 @@ Route::get('/test',function(){
clog('add','success','Test');
});
Route::middleware(['auth','admin'])->group(function () {
Route::middleware(['auth'])->group(function () {
/* Espace Administration Route */
@@ -39,111 +39,105 @@ Route::middleware(['auth','admin'])->group(function () {
Route::get('/admin', 'AdminController@index')->name('admin');
Route::get('/admin/update', 'AdminController@update');
/** Calendar */
Route::get('/admin/calendar', 'CalendarController@index');
Route::get('/admin/calendar/add/{date}', ['uses' =>'CalendarController@add']);
Route::get('/admin/calendar/edit/{id}', ['uses' =>'CalendarController@edit']);
Route::post('/admin/calendar/add', 'CalendarController@store');
Route::patch('/admin/calendar/edit/{id}', ['uses' =>'CalendarController@patch']);
/** Schedule */
Route::get('/admin/schedule/pdf/event/{id}','ScheduleController@printtopdf');
Route::get('/admin/schedule/add/{date}','ScheduleController@create');
Route::get('/admin/schedule/edit/{id}','EventController@edit');
Route::post('/admin/schedule/event/add','EventController@Store');
Route::post('/admin/schedule/event/edit/{id}','EventController@update');
Route::get('/admin/schedule', 'CalendarController@index')->middleware('perm:schedule_see');
Route::get('/admin/schedule/pdf/event/{id}','ScheduleController@printtopdf')->middleware('perm:schedule_see');
Route::get('/admin/schedule/add/{date}','ScheduleController@create')->middleware('perm:schedule_add');
Route::get('/admin/schedule/edit/{id}','EventController@edit')->middleware('perm:schedule_edit');
Route::post('/admin/schedule/event/add','EventController@Store')->middleware('perm:schedule_add');
Route::post('/admin/schedule/event/edit/{id}','EventController@update')->middleware('perm:schedule_edit');
/** Statistique */
Route::get('/admin/stats/log' , 'LogController@index');
Route::get('/admin/stats/log' , 'LogController@index')->middleware('perm:stats_see');;
/** Message */
Route::get('/admin/message' , 'MessageController@index');
Route::get('/admin/message/add' , 'MessageController@create');
Route::post('/admin/message/add' , 'MessageController@store');
Route::get('/admin/message/{id}', ['uses' =>'MessageController@show']);
Route::get('/admin/message' , 'MessageController@index')->middleware('perm:msg_see');
Route::get('/admin/message/add' , 'MessageController@create')->middleware('perm:msg_add');
Route::post('/admin/message/add' , 'MessageController@store')->middleware('perm:msg_add');
Route::get('/admin/message/{id}', ['uses' =>'MessageController@show'])->middleware('perm:msg_see');
/** User */
Route::get('/admin/user' , 'UserController@index');
Route::get('/admin/user/add' , 'UserController@create');
Route::post('/admin/user/add' , 'UserController@store');
Route::get('/admin/user/edit/{id}' , 'UserController@edit');
Route::post('/admin/user/edit/{id}' , 'UserController@update');
Route::get('/admin/user' , 'UserController@index')->middleware('perm:user_see');
Route::get('/admin/user/add' , 'UserController@create')->middleware('perm:user_add');
Route::post('/admin/user/add' , 'UserController@store')->middleware('perm:user_add');
Route::get('/admin/user/edit/{id}' , 'UserController@edit')->middleware('perm:user_edit');
Route::post('/admin/user/edit/{id}' , 'UserController@update')->middleware('perm:user_edit');
/** Config */
Route::get('/admin/config/job' , 'JobController@index');
Route::get('/admin/config/job/add' , 'JobController@create');
Route::post('/admin/config/job/add' , 'JobController@store');
Route::get('/admin/config/job/edit/{id}' , 'JobController@edit');
Route::get('/admin/config/schedule' , 'ScheduleController@index');
Route::post('/admin/config/schedule/edit' , 'ScheduleController@update');
Route::get('/admin/config/activity' , 'ComplementaryActivityController@index');
Route::get('/admin/config/activity/add' , 'ComplementaryActivityController@create');
Route::post('/admin/config/activity/add' , 'ComplementaryActivityController@store');
Route::get('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@edit');
Route::post('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@update');
Route::post('/admin/config/general/edit','ConfigController@update');
Route::get('/admin/config/' , 'ConfigController@index');
Route::get('/admin/config/customisation','ConfigController@customisation');
Route::post('/admin/config/customisation','ConfigController@customisationUpdate');
Route::get('/admin/config/job' , 'JobController@index')->middleware('perm:config_see');
Route::get('/admin/config/job/add' , 'JobController@create')->middleware('perm:config_add');
Route::post('/admin/config/job/add' , 'JobController@store')->middleware('perm:config_add');
Route::get('/admin/config/job/edit/{id}' , 'JobController@edit')->middleware('perm:config_add');
Route::get('/admin/config/schedule' , 'ScheduleController@index')->middleware('perm:config_edit');
Route::post('/admin/config/schedule/edit' , 'ScheduleController@update')->middleware('perm:config_edit');
Route::get('/admin/config/activity' , 'ComplementaryActivityController@index')->middleware('perm:config_edit');
Route::get('/admin/config/activity/add' , 'ComplementaryActivityController@create')->middleware('perm:config_edit');
Route::post('/admin/config/activity/add' , 'ComplementaryActivityController@store')->middleware('perm:config_edit');
Route::get('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@edit')->middleware('perm:config_edit');
Route::post('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@update')->middleware('perm:config_edit');
Route::post('/admin/config/general/edit','ConfigController@update')->middleware('perm:config_edit');
Route::get('/admin/config/' , 'ConfigController@index')->middleware('perm:config_edit');
Route::get('/admin/config/customisation','ConfigController@customisation')->middleware('perm:config_edit');
Route::post('/admin/config/customisation','ConfigController@customisationUpdate')->middleware('perm:config_edit');
Route::get('/admin/config/ranks','RankController@index');
Route::get('/admin/config/ranks/{id}','RankController@show');
Route::get('/admin/config/jobs','JobController@index');
Route::get('/admin/config/ranks','RankController@index')->middleware('perm:config_edit');
Route::get('/admin/config/ranks/add','RankController@create')->middleware('perm:config_edit');
Route::post('/admin/config/ranks/add','RankController@store')->middleware('perm:config_edit');
Route::get('/admin/config/ranks/{id}','RankController@show')->middleware('perm:config_edit');
Route::post('/admin/config/ranks/{id}','RankController@update')->middleware('perm:config_edit');
Route::get('/admin/config/jobs','JobController@index')->middleware('perm:config_edit');
/** Public page */
Route::get('/admin/public/edit/{config}', 'PublicController@edit');
Route::post('/admin/public/edit/{config}', 'PublicController@update');
Route::get('/admin/public/edit/{config}', 'PublicController@edit')->middleware('perm:config_edit');
Route::post('/admin/public/edit/{config}', 'PublicController@update')->middleware('perm:config_edit');
/** Picture */
Route::get('/admin/picture','PictureController@indexAdmin');
Route::get('/admin/picture/add','PictureController@create');
Route::post('/admin/picture/add','PictureController@store');
Route::get('/admin/picture/edit/{id}','PictureController@edit');
Route::post('/admin/picture/edit/{id}','PictureController@update');
Route::get('/admin/picture','PictureController@indexAdmin')->middleware('perm:picture_see');
Route::get('/admin/picture/add','PictureController@create')->middleware('perm:picture_add');
Route::post('/admin/picture/add','PictureController@store')->middleware('perm:picture_add');
Route::get('/admin/picture/edit/{id}','PictureController@edit')->middleware('perm:picture_edit');
Route::post('/admin/picture/edit/{id}','PictureController@update')->middleware('perm:picture_edit');
/** Inventory */
Route::get('/admin/inventory' , 'InventoryController@index');
Route::get('/admin/inventory/management','InventoryController@management');
Route::get('/admin/inventory' , 'InventoryController@index')->middleware('perm:inventory_see');
Route::get('/admin/inventory/management','InventoryController@management')->middleware('perm:inventory_edit');
/** Item Category */
Route::get('/admin/inventory/management/category','ItemCategoryController@index');
Route::get('/admin/inventory/management/category/add','ItemCategoryController@create');
Route::post('/admin/inventory/management/category/add','ItemCategoryController@store');
Route::get('/admin/inventory/management/category/edit/{id}','ItemCategoryController@edit');
Route::post('/admin/inventory/management/category/edit/{id}','ItemCategoryController@update');
Route::get('/admin/inventory/management/category','ItemCategoryController@index')->middleware('perm:inventory_edit');
Route::get('/admin/inventory/management/category/add','ItemCategoryController@create')->middleware('perm:inventory_add');
Route::post('/admin/inventory/management/category/add','ItemCategoryController@store')->middleware('perm:inventory_add');
Route::get('/admin/inventory/management/category/edit/{id}','ItemCategoryController@edit')->middleware('perm:inventory_edit');
Route::post('/admin/inventory/management/category/edit/{id}','ItemCategoryController@update')->middleware('perm:inventory_edit');
/** News */
Route::get('/admin/news','NewsController@indexAdmin');
Route::get('/admin/news/add','NewsController@create');
Route::post('/admin/news/add','NewsController@store');
Route::get('/admin/news/edit/{id}','NewsController@edit');
Route::post('/admin/news/edit/{id}','NewsController@update');
Route::get('/admin/news','NewsController@indexAdmin')->middleware('perm:news_see');
Route::get('/admin/news/add','NewsController@create')->middleware('perm:news_add');
Route::post('/admin/news/add','NewsController@store')->middleware('perm:news_add');
Route::get('/admin/news/edit/{id}','NewsController@edit')->middleware('perm:news_edit');
Route::post('/admin/news/edit/{id}','NewsController@update')->middleware('perm:news_edit');
/** Articles */
Route::get('/admin/article','ArticleController@index');
Route::get('/admin/article/activity/edit/{id}','ArticleController@editActivity');
Route::post('/admin/article/activity/edit/{id}','ArticleController@updateActivity');
Route::get('/admin/article/activity/picture/{id}','ArticleController@pictureActivity');
Route::get('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityCreate');
Route::post('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityStore');
Route::get('/admin/article','ArticleController@index')->middleware('perm:article_see');
Route::get('/admin/article/activity/edit/{id}','ArticleController@editActivity')->middleware('perm:article_edit');
Route::post('/admin/article/activity/edit/{id}','ArticleController@updateActivity')->middleware('perm:article_edit');
Route::get('/admin/article/activity/picture/{id}','ArticleController@pictureActivity')->middleware('perm:article_edit');
Route::get('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityCreate')->middleware('perm:article_edit');
Route::post('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityStore')->middleware('perm:article_edit');
/** Booking */
Route::get('/admin/booking','BookingController@index');
Route::get('/admin/booking/{id}','BookingController@show');
Route::get('/admin/booking/{type}/{id}','BookingController@index');
Route::get('/admin/booking/{type}/{id}/add','BookingController@create');
Route::post('/admin/booking/{type}/{id}/add','BookingController@store');
Route::get('/admin/inventory/booking' , 'InventoryController@booking');
Route::post('/admin/booking/edit','BookingController@update');
Route::get('/admin/booking','BookingController@index')->middleware('perm:booking_see');
Route::get('/admin/booking/{id}','BookingController@show')->middleware('perm:booking_see');
Route::get('/admin/booking/{type}/{id}','BookingController@index')->middleware('perm:booking_see');
Route::get('/admin/booking/{type}/{id}/add','BookingController@create')->middleware('perm:booking_add');
Route::post('/admin/booking/{type}/{id}/add','BookingController@store')->middleware('perm:booking_add');
Route::get('/admin/inventory/booking' , 'InventoryController@booking')->middleware('perm:inventory_see');
Route::post('/admin/booking/edit','BookingController@update')->middleware('perm:booking_see')->middleware('perm:booking_edit');
/** Item */
Route::get('/admin/item/add' , 'ItemController@create');
Route::get('/admin/item/edit/{id}' , 'ItemController@edit');
Route::post('/admin/item/add' , 'ItemController@store');
Route::post('/admin/item/edit/{id}' , 'ItemController@update');
/** Local */
Route::get('/admin/config/local' , 'LocalController@index');
Route::get('/admin/item/add' , 'ItemController@create')->middleware('perm:inventory_add');
Route::get('/admin/item/edit/{id}' , 'ItemController@edit')->middleware('perm:inventory_edit');
Route::post('/admin/item/add' , 'ItemController@store')->middleware('perm:inventory_add');
Route::post('/admin/item/edit/{id}' , 'ItemController@update')->middleware('perm:inventory_edit');
/** Notification */
Route::get('/admin/notication/mark','UserController@notificationmarkALL');
@@ -165,31 +159,4 @@ Route::middleware(['auth','admin'])->group(function () {
Route::get('/admin/guide','FilesController@guide');
});
Route::middleware(['auth','staff'])->group(function () {
/** Espace Cadet cadre */
Route::get('/ecc','ECCController@index');
Route::get('/ecc/messages','ECCController@messages');
Route::get('/ecc/messages/{page}','ECCController@messages');
Route::get('/ecc/message/{id}','ECCController@message');
Route::get('/ecc/guide','ECCController@guide');
Route::get('/ecc/update','ECCController@update');
Route::get('/ecc/calendar','ECCController@calendar');
Route::get('/ecc/calendar/{date}','ECCController@calendar_date');
Route::get('/ecc/inventory/{id}/{niveau}/{periode}' , 'ECCController@booking');
Route::post('/ecc/inventory/add/{id}/{periode}/{niveau}' , 'ECCController@booking_add');
Route::post('/ecc/inventory/remove/{id}/{periode}/{niveau}' , 'ECCController@booking_remove');
Route::get('/ecc/list','ECCController@list');
Route::get('/ecc/files','ECCController@files');
Route::get('/ecc/settings','ECCController@settings');
Route::get('/ecc/settings/password' , 'ECCController@UserPassword');
Route::post('/ecc/settings/edit/password' , 'UserController@editUserPassword');
Route::get('/ecc/settings/avatar', 'ECCController@UserAvatar');
Route::get('/ecc/settings/edit/avatar/{id}' , 'UserController@editUserAvatar');
Route::get('/ecc/settings/adress', 'ECCController@UserAdress');
Route::post('/ecc/settings/edit/adress', 'UserController@editUserAdress');
});