Merge branch 'dev' into 'master'

Dev

See merge request TheGamecraft/c-cms!65
This commit is contained in:
Mathieu Lagace
2019-09-13 20:33:08 +00:00
44 changed files with 1612 additions and 805 deletions

View File

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

View File

@@ -42,7 +42,16 @@ class BookingController extends Controller
*/ */
public function create($type,$id) public function create($type,$id)
{ {
return view('admin.booking.create',['items' => \App\Item::training(),'event_type' => $type,'event_id' => $id]); $event = null;
if($type == 'course')
{
$event = \App\Course::find($id)->event;
}
else if ($type == 'event')
{
$event = \App\Event::find($id);
}
return view('admin.booking.create',['items' => \App\Item::training(),'event_type' => $type,'event_id' => $id,'event' => $event]);
} }
/** /**
@@ -136,13 +145,31 @@ class BookingController extends Controller
$b->delete(); $b->delete();
} }
public function modalItem($id) public function modalItem($id,$event_type,$event_id)
{ {
return view('admin.booking.modal.create',['item' => \App\Item::find($id)]); $event = null;
if ($event_type == 'course')
{
$event = \App\Course::find($event_id)->event;
}
else
{
$event = \App\Event::find($event_id);
}
return view('admin.booking.modal.create',['item' => \App\Item::find($id),'event' => $event]);
} }
public function modalItemEdit($id) public function modalItemEdit($id,$event_type,$event_id)
{ {
return view('admin.booking.modal.edit',['booking' => \App\Booking::find($id)]); $event = null;
if ($event_type == 'course')
{
$event = \App\Course::find($event_id)->event;
}
else
{
$event = \App\Event::find($event_id);
}
return view('admin.booking.modal.edit',['booking' => \App\Booking::find($id),'event' => $event]);
} }
} }

View File

@@ -84,7 +84,7 @@ class EventController extends Controller
} }
} }
clog('add','success','a ajouté un évènement',null,'App\Event',$event->id); 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); 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

@@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers;
use App\Permission;
use Illuminate\Http\Request;
class PermissionController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\Permission $permission
* @return \Illuminate\Http\Response
*/
public function show(Permission $permission)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Permission $permission
* @return \Illuminate\Http\Response
*/
public function edit(Permission $permission)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Permission $permission
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Permission $permission)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Permission $permission
* @return \Illuminate\Http\Response
*/
public function destroy(Permission $permission)
{
//
}
}

View File

@@ -14,7 +14,7 @@ class RankController extends Controller
*/ */
public function index() public function index()
{ {
// return view('admin.configs.ranks.index',['ranks' => Rank::all()]);
} }
/** /**
@@ -24,7 +24,7 @@ class RankController extends Controller
*/ */
public function create() public function create()
{ {
// return view('admin.configs.ranks.add');
} }
/** /**
@@ -35,7 +35,25 @@ class RankController extends Controller
*/ */
public function store(Request $request) 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');
} }
/** /**
@@ -44,9 +62,9 @@ class RankController extends Controller
* @param \App\Rank $rank * @param \App\Rank $rank
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function show(Rank $rank) public function show($rank)
{ {
// return view('admin.configs.ranks.show',['rank' => Rank::find($rank)]);
} }
/** /**
@@ -57,7 +75,7 @@ class RankController extends Controller
*/ */
public function edit(Rank $rank) public function edit(Rank $rank)
{ {
//
} }
/** /**
@@ -67,9 +85,26 @@ class RankController extends Controller
* @param \App\Rank $rank * @param \App\Rank $rank
* @return \Illuminate\Http\Response * @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

@@ -196,7 +196,8 @@ class ScheduleController extends Controller
public function printtopdf($id) public function printtopdf($id)
{ {
$event = \App\Event::find($id); $event = \App\Event::find($id);
$pdf = PDF::loadView('admin.schedule.print.event',['event' => $event]); //return view('admin.schedule.print.event',['event' => $event]);
$pdf = PDF::loadView('admin.schedule.print.event',['event' => $event])->setPaper('8.5x11', 'landscape');
return $pdf->download($event->date_begin.'.pdf'); return $pdf->download($event->date_begin.'.pdf');
} }

View File

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

View File

@@ -61,5 +61,6 @@ class Kernel extends HttpKernel
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'staff' => \App\Http\Middleware\AccesStaff::class, 'staff' => \App\Http\Middleware\AccesStaff::class,
'admin' => \App\Http\Middleware\AccesAdmin::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

@@ -51,15 +51,52 @@ class Item extends Model
{ {
return $this->quantity - $this->booked(); return $this->quantity - $this->booked();
} }
else
{
return $this->quantity - $this->booked($begin,$end);
}
} }
public function booked() public function booked($begin_time = null,$end_time = null)
{ {
$nbBooked = 0; $nbBooked = 0;
foreach ($this->bookings as $b)
foreach ($this->bookings() as $b)
{ {
$nbBooked = $nbBooked + $b->amount; if ($begin_time != null && $end_time != null)
{
$b_begin_time = null;
$b_end_time = null;
if ($b->bookable_type == 'App\Course')
{
$b_begin_time = $b->bookable->event->date_begin;
$b_end_time = $b->bookable->event->date_end;
}
else
{
$b_begin_time = $b->bookable->date_begin;
$b_end_time = $b->bookable->date_end;
}
if (date('U',strtotime($b_begin_time)) <= date('U',strtotime($begin_time)) && date('U',strtotime($b_end_time)) <= date('U',strtotime($end_time)) && date('U',strtotime($b_end_time)) >= date('U',strtotime($begin_time)))
{
$nbBooked = $nbBooked + $b->amount;
}
elseif (date('U',strtotime($b_begin_time)) <= date('U',strtotime($begin_time)) && date('U',strtotime($b_end_time)) >= date('U',strtotime($end_time)))
{
$nbBooked = $nbBooked + $b->amount;
}
elseif (date('U',strtotime($b_begin_time)) >= date('U',strtotime($begin_time)) && date('U',strtotime($b_begin_time)) <= date('U',strtotime($end_time)) && date('U',strtotime($b_end_time)) >= date('U',strtotime($end_time)))
{
$nbBooked = $nbBooked + $b->amount;
}
elseif (date('U',strtotime($b_begin_time)) >= date('U',strtotime($begin_time)) && date('U',strtotime($b_begin_time)) <= date('U',strtotime($end_time)))
{
$nbBooked = $nbBooked + $b->amount;
}
}
else
{
$nbBooked = $nbBooked + $b->amount;
}
} }
return $nbBooked; return $nbBooked;

321
app/Permission.php Normal file
View File

@@ -0,0 +1,321 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Arr;
class Permission extends Model
{
const PERMISSIONS = [
'news' => [
'news_see' => [
'ckey' => 'news_see',
'communName' => 'Voir les nouvelles',
'desc' => 'L\'utilisateur peut-il consulter les nouvelles',
'icon' => 'fa-eye',
'valeur' => 0
],
'news_add' => [
'ckey' => 'news_add',
'communName' => 'Ajouter une nouvelles',
'desc' => 'L\'utilisateur peut-il ajouter une nouvelle',
'icon' => 'fa-plus',
'valeur' => 0
],
'news_edit' => [
'ckey' => 'news_edit',
'communName' => 'Modifier une nouvelles',
'desc' => 'L\'utilisateur peut-il modifier une nouvelle',
'icon' => 'fa-edit',
'valeur' => 0
],
'news_delete' => [
'ckey' => 'news_delete',
'communName' => 'Supprimer une nouvelles',
'desc' => 'L\'utilisateur peut-il supprimer une nouvelle',
'icon' => 'fa-close',
'valeur' => 0
]
],
'message' => [
'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' => [
'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' => [
'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' => [
'ckey' => 'msg_delete',
'communName' => 'Supprimer un message',
'desc' => 'L\'utilisateur peut-il supprimer un message de la semaine',
'icon' => 'fa-eye',
'valeur' => 0
]
],
'inventory' => [
'inventory_see' => [
'ckey' => 'inventory_see',
'communName' => 'Voir l\'inventaire',
'desc' => 'L\'utilisateur peut-il consulter l\'inventaire',
'icon' => 'fa-eye',
'valeur' => 0
],
'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' => [
'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' => [
'ckey' => 'inventory_delete',
'communName' => 'Supprimer un item de l\'inventaire',
'desc' => 'L\'utilisateur peut-il supprimer un item de l\'inventaire',
'icon' => 'fa-eye',
'valeur' => 0
],
],
'booking' => [
'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_add' => [
'ckey' => 'booking_add',
'communName' => 'Ajouter une réservation',
'desc' => 'L\'utilisateur peut-il ajouter une réservation',
'icon' => 'fa-eye',
'valeur' => 0
],
'booking_edit' => [
'ckey' => 'booking_edit',
'communName' => 'Modifier une réservation',
'desc' => 'L\'utilisateur peut-il modifier une réservation',
'icon' => 'fa-eye',
'valeur' => 0
],
'booking_delete' => [
'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($value = null,$columns = null)
{
$permissions = collect();
foreach (self::PERMISSIONS as $key => $cat)
{
foreach ($cat as $c)
{
$p = new Permission();
$p->ckey = $c['ckey'];
$p->communName = $c['communName'];
$p->desc = $c['desc'];
$p->icon = $c['icon'];
if ($value == null)
{
$p->value = $c['valeur'];
}
else
{
$p->value = $value;
}
$permissions->push($p);
}
}
return $permissions;
}
public static function allToArray()
{
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

@@ -6,7 +6,26 @@ use Illuminate\Database\Eloquent\Model;
class Rank extends Model class Rank extends Model
{ {
protected $casts = [ public function permissions()
'perm' => 'array', {
]; 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', 'password', 'remember_token',
]; ];
public function rank()
{
return $this->belongsTo('App\Rank');
}
public function logs() public function logs()
{ {
return $this->hasMany(Log::class); return $this->hasMany(Log::class);
@@ -279,4 +284,14 @@ class User extends Authenticatable
{ {
return $this->hasMany('App\News'); return $this->hasMany('App\News');
} }
public function permission($perm)
{
return $this->rank->permission($perm);
}
public function p($perm)
{
return $this->permission($perm);
}
} }

299
composer.lock generated
View File

@@ -1,28 +1,28 @@
{ {
"_readme": [ "_readme": [
"This file locks the dependencies of your project to a known state", "This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "24a0b732198a68feae22520e2527cb91", "content-hash": "24a0b732198a68feae22520e2527cb91",
"packages": [ "packages": [
{ {
"name": "barryvdh/laravel-dompdf", "name": "barryvdh/laravel-dompdf",
"version": "v0.8.4", "version": "v0.8.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/barryvdh/laravel-dompdf.git", "url": "https://github.com/barryvdh/laravel-dompdf.git",
"reference": "3fd817065e1c820b1ddace8b2bf65ca45088df4f" "reference": "7393732b2f3a3ee357974cbb0c46c9b65b84dad1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/3fd817065e1c820b1ddace8b2bf65ca45088df4f", "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/7393732b2f3a3ee357974cbb0c46c9b65b84dad1",
"reference": "3fd817065e1c820b1ddace8b2bf65ca45088df4f", "reference": "7393732b2f3a3ee357974cbb0c46c9b65b84dad1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"dompdf/dompdf": "^0.8", "dompdf/dompdf": "^0.8",
"illuminate/support": "5.5.x|5.6.x|5.7.x|5.8.x", "illuminate/support": "^5.5|^6",
"php": ">=7" "php": ">=7"
}, },
"type": "library", "type": "library",
@@ -60,7 +60,7 @@
"laravel", "laravel",
"pdf" "pdf"
], ],
"time": "2019-02-26T18:07:43+00:00" "time": "2019-08-23T14:30:33+00:00"
}, },
{ {
"name": "barryvdh/laravel-ide-helper", "name": "barryvdh/laravel-ide-helper",
@@ -187,16 +187,16 @@
}, },
{ {
"name": "composer/ca-bundle", "name": "composer/ca-bundle",
"version": "1.2.3", "version": "1.2.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/ca-bundle.git", "url": "https://github.com/composer/ca-bundle.git",
"reference": "f26a67e397be0e5c00d7c52ec7b5010098e15ce5" "reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/f26a67e397be0e5c00d7c52ec7b5010098e15ce5", "url": "https://api.github.com/repos/composer/ca-bundle/zipball/10bb96592168a0f8e8f6dcde3532d9fa50b0b527",
"reference": "f26a67e397be0e5c00d7c52ec7b5010098e15ce5", "reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -239,7 +239,7 @@
"ssl", "ssl",
"tls" "tls"
], ],
"time": "2019-08-02T09:05:43+00:00" "time": "2019-08-30T08:44:50+00:00"
}, },
{ {
"name": "composer/composer", "name": "composer/composer",
@@ -875,25 +875,25 @@
}, },
{ {
"name": "fideloper/proxy", "name": "fideloper/proxy",
"version": "4.2.0", "version": "4.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/fideloper/TrustedProxy.git", "url": "https://github.com/fideloper/TrustedProxy.git",
"reference": "39a4c2165e578bc771f5dc031c273210a3a9b6d2" "reference": "03085e58ec7bee24773fa5a8850751a6e61a7e8a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/39a4c2165e578bc771f5dc031c273210a3a9b6d2", "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/03085e58ec7bee24773fa5a8850751a6e61a7e8a",
"reference": "39a4c2165e578bc771f5dc031c273210a3a9b6d2", "reference": "03085e58ec7bee24773fa5a8850751a6e61a7e8a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"illuminate/contracts": "~5.0|~6.0", "illuminate/contracts": "^5.0|^6.0|^7.0",
"php": ">=5.4.0" "php": ">=5.4.0"
}, },
"require-dev": { "require-dev": {
"illuminate/http": "~5.6|~6.0", "illuminate/http": "^5.0|^6.0|^7.0",
"mockery/mockery": "~1.0", "mockery/mockery": "^1.0",
"phpunit/phpunit": "^6.0" "phpunit/phpunit": "^6.0"
}, },
"type": "library", "type": "library",
@@ -925,7 +925,7 @@
"proxy", "proxy",
"trusted proxy" "trusted proxy"
], ],
"time": "2019-07-29T16:49:45+00:00" "time": "2019-09-03T16:45:42+00:00"
}, },
{ {
"name": "guzzlehttp/guzzle", "name": "guzzlehttp/guzzle",
@@ -1559,8 +1559,8 @@
"authors": [ "authors": [
{ {
"name": "Luís Otávio Cobucci Oblonczyk", "name": "Luís Otávio Cobucci Oblonczyk",
"role": "Developer", "email": "lcobucci@gmail.com",
"email": "lcobucci@gmail.com" "role": "Developer"
} }
], ],
"description": "A simple library to work with JSON Web Token and JSON Web Signature", "description": "A simple library to work with JSON Web Token and JSON Web Signature",
@@ -1572,16 +1572,16 @@
}, },
{ {
"name": "league/flysystem", "name": "league/flysystem",
"version": "1.0.53", "version": "1.0.55",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/flysystem.git", "url": "https://github.com/thephpleague/flysystem.git",
"reference": "08e12b7628f035600634a5e76d95b5eb66cea674" "reference": "33c91155537c6dc899eacdc54a13ac6303f156e6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/08e12b7628f035600634a5e76d95b5eb66cea674", "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/33c91155537c6dc899eacdc54a13ac6303f156e6",
"reference": "08e12b7628f035600634a5e76d95b5eb66cea674", "reference": "33c91155537c6dc899eacdc54a13ac6303f156e6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1652,20 +1652,20 @@
"sftp", "sftp",
"storage" "storage"
], ],
"time": "2019-06-18T20:09:29+00:00" "time": "2019-08-24T11:17:19+00:00"
}, },
{ {
"name": "monolog/monolog", "name": "monolog/monolog",
"version": "1.24.0", "version": "1.25.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Seldaek/monolog.git", "url": "https://github.com/Seldaek/monolog.git",
"reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266" "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", "url": "https://api.github.com/repos/Seldaek/monolog/zipball/70e65a5470a42cfec1a7da00d30edb6e617e8dcf",
"reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1730,7 +1730,7 @@
"logging", "logging",
"psr-3" "psr-3"
], ],
"time": "2018-11-05T09:00:11+00:00" "time": "2019-09-06T13:49:17+00:00"
}, },
{ {
"name": "nesbot/carbon", "name": "nesbot/carbon",
@@ -1828,9 +1828,9 @@
"authors": [ "authors": [
{ {
"name": "Tim Lytle", "name": "Tim Lytle",
"role": "Developer",
"email": "tim@nexmo.com", "email": "tim@nexmo.com",
"homepage": "http://twitter.com/tjlytle" "homepage": "http://twitter.com/tjlytle",
"role": "Developer"
} }
], ],
"description": "PHP Client for using Nexmo's API.", "description": "PHP Client for using Nexmo's API.",
@@ -1838,16 +1838,16 @@
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v4.2.3", "version": "v4.2.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "e612609022e935f3d0337c1295176505b41188c8" "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e612609022e935f3d0337c1295176505b41188c8", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/97e59c7a16464196a8b9c77c47df68e4a39a45c4",
"reference": "e612609022e935f3d0337c1295176505b41188c8", "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1885,7 +1885,7 @@
"parser", "parser",
"php" "php"
], ],
"time": "2019-08-12T20:17:41+00:00" "time": "2019-09-01T07:51:21+00:00"
}, },
{ {
"name": "paragonie/random_compat", "name": "paragonie/random_compat",
@@ -2818,16 +2818,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9" "reference": "de63799239b3881b8a08f8481b22348f77ed7b36"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9", "url": "https://api.github.com/repos/symfony/console/zipball/de63799239b3881b8a08f8481b22348f77ed7b36",
"reference": "8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9", "reference": "de63799239b3881b8a08f8481b22348f77ed7b36",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2889,20 +2889,20 @@
], ],
"description": "Symfony Console Component", "description": "Symfony Console Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-07-24T17:13:59+00:00" "time": "2019-08-26T08:26:39+00:00"
}, },
{ {
"name": "symfony/css-selector", "name": "symfony/css-selector",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/css-selector.git", "url": "https://github.com/symfony/css-selector.git",
"reference": "105c98bb0c5d8635bea056135304bd8edcc42b4d" "reference": "c6e5e2a00db768c92c3ae131532af4e1acc7bd03"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/105c98bb0c5d8635bea056135304bd8edcc42b4d", "url": "https://api.github.com/repos/symfony/css-selector/zipball/c6e5e2a00db768c92c3ae131532af4e1acc7bd03",
"reference": "105c98bb0c5d8635bea056135304bd8edcc42b4d", "reference": "c6e5e2a00db768c92c3ae131532af4e1acc7bd03",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2942,20 +2942,20 @@
], ],
"description": "Symfony CssSelector Component", "description": "Symfony CssSelector Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-01-16T21:53:39+00:00" "time": "2019-08-20T14:07:54+00:00"
}, },
{ {
"name": "symfony/debug", "name": "symfony/debug",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/debug.git", "url": "https://github.com/symfony/debug.git",
"reference": "527887c3858a2462b0137662c74837288b998ee3" "reference": "afcdea44a2e399c1e4b52246ec8d54c715393ced"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/527887c3858a2462b0137662c74837288b998ee3", "url": "https://api.github.com/repos/symfony/debug/zipball/afcdea44a2e399c1e4b52246ec8d54c715393ced",
"reference": "527887c3858a2462b0137662c74837288b998ee3", "reference": "afcdea44a2e399c1e4b52246ec8d54c715393ced",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2998,20 +2998,20 @@
], ],
"description": "Symfony Debug Component", "description": "Symfony Debug Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-07-23T11:21:36+00:00" "time": "2019-08-20T14:27:59+00:00"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
"reference": "212b020949331b6531250584531363844b34a94e" "reference": "429d0a1451d4c9c4abe1959b2986b88794b9b7d2"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/212b020949331b6531250584531363844b34a94e", "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/429d0a1451d4c9c4abe1959b2986b88794b9b7d2",
"reference": "212b020949331b6531250584531363844b34a94e", "reference": "429d0a1451d4c9c4abe1959b2986b88794b9b7d2",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3068,7 +3068,7 @@
], ],
"description": "Symfony EventDispatcher Component", "description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-06-27T06:42:14+00:00" "time": "2019-08-26T08:55:16+00:00"
}, },
{ {
"name": "symfony/event-dispatcher-contracts", "name": "symfony/event-dispatcher-contracts",
@@ -3130,16 +3130,16 @@
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/filesystem.git", "url": "https://github.com/symfony/filesystem.git",
"reference": "b9896d034463ad6fd2bf17e2bf9418caecd6313d" "reference": "9abbb7ef96a51f4d7e69627bc6f63307994e4263"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/b9896d034463ad6fd2bf17e2bf9418caecd6313d", "url": "https://api.github.com/repos/symfony/filesystem/zipball/9abbb7ef96a51f4d7e69627bc6f63307994e4263",
"reference": "b9896d034463ad6fd2bf17e2bf9418caecd6313d", "reference": "9abbb7ef96a51f4d7e69627bc6f63307994e4263",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3176,20 +3176,20 @@
], ],
"description": "Symfony Filesystem Component", "description": "Symfony Filesystem Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-06-23T08:51:25+00:00" "time": "2019-08-20T14:07:54+00:00"
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "9638d41e3729459860bb96f6247ccb61faaa45f2" "reference": "86c1c929f0a4b24812e1eb109262fc3372c8e9f2"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/9638d41e3729459860bb96f6247ccb61faaa45f2", "url": "https://api.github.com/repos/symfony/finder/zipball/86c1c929f0a4b24812e1eb109262fc3372c8e9f2",
"reference": "9638d41e3729459860bb96f6247ccb61faaa45f2", "reference": "86c1c929f0a4b24812e1eb109262fc3372c8e9f2",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3225,20 +3225,20 @@
], ],
"description": "Symfony Finder Component", "description": "Symfony Finder Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-06-28T13:16:30+00:00" "time": "2019-08-14T12:26:46+00:00"
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "8b778ee0c27731105fbf1535f51793ad1ae0ba2b" "reference": "d804bea118ff340a12e22a79f9c7e7eb56b35adc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/8b778ee0c27731105fbf1535f51793ad1ae0ba2b", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d804bea118ff340a12e22a79f9c7e7eb56b35adc",
"reference": "8b778ee0c27731105fbf1535f51793ad1ae0ba2b", "reference": "d804bea118ff340a12e22a79f9c7e7eb56b35adc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3280,20 +3280,20 @@
], ],
"description": "Symfony HttpFoundation Component", "description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-07-23T11:21:36+00:00" "time": "2019-08-26T08:55:16+00:00"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "a414548d236ddd8fa3df52367d583e82339c5e95" "reference": "5e0fc71be03d52cd00c423061cfd300bd6f92a52"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/a414548d236ddd8fa3df52367d583e82339c5e95", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/5e0fc71be03d52cd00c423061cfd300bd6f92a52",
"reference": "a414548d236ddd8fa3df52367d583e82339c5e95", "reference": "5e0fc71be03d52cd00c423061cfd300bd6f92a52",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3372,20 +3372,20 @@
], ],
"description": "Symfony HttpKernel Component", "description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-07-28T07:10:23+00:00" "time": "2019-08-26T16:47:42+00:00"
}, },
{ {
"name": "symfony/mime", "name": "symfony/mime",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mime.git", "url": "https://github.com/symfony/mime.git",
"reference": "6b7148029b1dd5eda1502064f06d01357b7b2d8b" "reference": "987a05df1c6ac259b34008b932551353f4f408df"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/6b7148029b1dd5eda1502064f06d01357b7b2d8b", "url": "https://api.github.com/repos/symfony/mime/zipball/987a05df1c6ac259b34008b932551353f4f408df",
"reference": "6b7148029b1dd5eda1502064f06d01357b7b2d8b", "reference": "987a05df1c6ac259b34008b932551353f4f408df",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3394,7 +3394,7 @@
"symfony/polyfill-mbstring": "^1.0" "symfony/polyfill-mbstring": "^1.0"
}, },
"require-dev": { "require-dev": {
"egulias/email-validator": "^2.0", "egulias/email-validator": "^2.1.10",
"symfony/dependency-injection": "~3.4|^4.1" "symfony/dependency-injection": "~3.4|^4.1"
}, },
"type": "library", "type": "library",
@@ -3431,7 +3431,7 @@
"mime", "mime",
"mime-type" "mime-type"
], ],
"time": "2019-07-19T16:21:19+00:00" "time": "2019-08-22T08:16:11+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
@@ -3786,16 +3786,16 @@
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/process.git", "url": "https://github.com/symfony/process.git",
"reference": "856d35814cf287480465bb7a6c413bb7f5f5e69c" "reference": "e89969c00d762349f078db1128506f7f3dcc0d4a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/856d35814cf287480465bb7a6c413bb7f5f5e69c", "url": "https://api.github.com/repos/symfony/process/zipball/e89969c00d762349f078db1128506f7f3dcc0d4a",
"reference": "856d35814cf287480465bb7a6c413bb7f5f5e69c", "reference": "e89969c00d762349f078db1128506f7f3dcc0d4a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3831,20 +3831,20 @@
], ],
"description": "Symfony Process Component", "description": "Symfony Process Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-05-30T16:10:05+00:00" "time": "2019-08-26T08:26:39+00:00"
}, },
{ {
"name": "symfony/routing", "name": "symfony/routing",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/routing.git", "url": "https://github.com/symfony/routing.git",
"reference": "a88c47a5861549f5dc1197660818084c3b67d773" "reference": "ff1049f6232dc5b6023b1ff1c6de56f82bcd264f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/a88c47a5861549f5dc1197660818084c3b67d773", "url": "https://api.github.com/repos/symfony/routing/zipball/ff1049f6232dc5b6023b1ff1c6de56f82bcd264f",
"reference": "a88c47a5861549f5dc1197660818084c3b67d773", "reference": "ff1049f6232dc5b6023b1ff1c6de56f82bcd264f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3907,20 +3907,20 @@
"uri", "uri",
"url" "url"
], ],
"time": "2019-07-23T14:43:56+00:00" "time": "2019-08-26T08:26:39+00:00"
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",
"version": "v1.1.5", "version": "v1.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/service-contracts.git", "url": "https://github.com/symfony/service-contracts.git",
"reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d" "reference": "ea7263d6b6d5f798b56a45a5b8d686725f2719a3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d", "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ea7263d6b6d5f798b56a45a5b8d686725f2719a3",
"reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d", "reference": "ea7263d6b6d5f798b56a45a5b8d686725f2719a3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3965,26 +3965,26 @@
"interoperability", "interoperability",
"standards" "standards"
], ],
"time": "2019-06-13T11:15:36+00:00" "time": "2019-08-20T14:44:19+00:00"
}, },
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/symfony/translation.git",
"reference": "4e3e39cc485304f807622bdc64938e4633396406" "reference": "28498169dd334095fa981827992f3a24d50fed0f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/4e3e39cc485304f807622bdc64938e4633396406", "url": "https://api.github.com/repos/symfony/translation/zipball/28498169dd334095fa981827992f3a24d50fed0f",
"reference": "4e3e39cc485304f807622bdc64938e4633396406", "reference": "28498169dd334095fa981827992f3a24d50fed0f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1.3", "php": "^7.1.3",
"symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-mbstring": "~1.0",
"symfony/translation-contracts": "^1.1.2" "symfony/translation-contracts": "^1.1.6"
}, },
"conflict": { "conflict": {
"symfony/config": "<3.4", "symfony/config": "<3.4",
@@ -4041,20 +4041,20 @@
], ],
"description": "Symfony Translation Component", "description": "Symfony Translation Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-07-18T10:34:59+00:00" "time": "2019-08-26T08:55:16+00:00"
}, },
{ {
"name": "symfony/translation-contracts", "name": "symfony/translation-contracts",
"version": "v1.1.5", "version": "v1.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation-contracts.git", "url": "https://github.com/symfony/translation-contracts.git",
"reference": "cb4b18ad7b92a26e83b65dde940fab78339e6f3c" "reference": "325b17c24f3ee23cbecfa63ba809c6d89b5fa04a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/cb4b18ad7b92a26e83b65dde940fab78339e6f3c", "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/325b17c24f3ee23cbecfa63ba809c6d89b5fa04a",
"reference": "cb4b18ad7b92a26e83b65dde940fab78339e6f3c", "reference": "325b17c24f3ee23cbecfa63ba809c6d89b5fa04a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4098,20 +4098,20 @@
"interoperability", "interoperability",
"standards" "standards"
], ],
"time": "2019-06-13T11:15:36+00:00" "time": "2019-08-02T12:15:04+00:00"
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
"version": "v4.3.3", "version": "v4.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-dumper.git", "url": "https://github.com/symfony/var-dumper.git",
"reference": "e4110b992d2cbe198d7d3b244d079c1c58761d07" "reference": "641043e0f3e615990a0f29479f9c117e8a6698c6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/e4110b992d2cbe198d7d3b244d079c1c58761d07", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/641043e0f3e615990a0f29479f9c117e8a6698c6",
"reference": "e4110b992d2cbe198d7d3b244d079c1c58761d07", "reference": "641043e0f3e615990a0f29479f9c117e8a6698c6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4174,7 +4174,7 @@
"debug", "debug",
"dump" "dump"
], ],
"time": "2019-07-27T06:42:46+00:00" "time": "2019-08-26T08:26:39+00:00"
}, },
{ {
"name": "tijsverkoyen/css-to-inline-styles", "name": "tijsverkoyen/css-to-inline-styles",
@@ -4215,8 +4215,8 @@
"authors": [ "authors": [
{ {
"name": "Tijs Verkoyen", "name": "Tijs Verkoyen",
"role": "Developer", "email": "css_to_inline_styles@verkoyen.eu",
"email": "css_to_inline_styles@verkoyen.eu" "role": "Developer"
} }
], ],
"description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
@@ -4443,8 +4443,8 @@
"authors": [ "authors": [
{ {
"name": "Filipe Dobreira", "name": "Filipe Dobreira",
"role": "Developer", "homepage": "https://github.com/filp",
"homepage": "https://github.com/filp" "role": "Developer"
} }
], ],
"description": "php error handling for cool kids", "description": "php error handling for cool kids",
@@ -4819,18 +4819,18 @@
"authors": [ "authors": [
{ {
"name": "Arne Blankerts", "name": "Arne Blankerts",
"role": "Developer", "email": "arne@blankerts.de",
"email": "arne@blankerts.de" "role": "Developer"
}, },
{ {
"name": "Sebastian Heuer", "name": "Sebastian Heuer",
"role": "Developer", "email": "sebastian@phpeople.de",
"email": "sebastian@phpeople.de" "role": "Developer"
}, },
{ {
"name": "Sebastian Bergmann", "name": "Sebastian Bergmann",
"role": "Developer", "email": "sebastian@phpunit.de",
"email": "sebastian@phpunit.de" "role": "Developer"
} }
], ],
"description": "Library for handling version information and constraints", "description": "Library for handling version information and constraints",
@@ -5101,8 +5101,8 @@
"authors": [ "authors": [
{ {
"name": "Sebastian Bergmann", "name": "Sebastian Bergmann",
"role": "lead", "email": "sebastian@phpunit.de",
"email": "sebastian@phpunit.de" "role": "lead"
} }
], ],
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
@@ -5152,8 +5152,8 @@
"authors": [ "authors": [
{ {
"name": "Sebastian Bergmann", "name": "Sebastian Bergmann",
"role": "lead", "email": "sebastian@phpunit.de",
"email": "sebastian@phpunit.de" "role": "lead"
} }
], ],
"description": "FilterIterator implementation that filters files based on a list of suffixes.", "description": "FilterIterator implementation that filters files based on a list of suffixes.",
@@ -5194,8 +5194,8 @@
"authors": [ "authors": [
{ {
"name": "Sebastian Bergmann", "name": "Sebastian Bergmann",
"role": "lead", "email": "sebastian@phpunit.de",
"email": "sebastian@phpunit.de" "role": "lead"
} }
], ],
"description": "Simple template engine.", "description": "Simple template engine.",
@@ -5243,8 +5243,8 @@
"authors": [ "authors": [
{ {
"name": "Sebastian Bergmann", "name": "Sebastian Bergmann",
"role": "lead", "email": "sebastian@phpunit.de",
"email": "sebastian@phpunit.de" "role": "lead"
} }
], ],
"description": "Utility class for timing", "description": "Utility class for timing",
@@ -5305,16 +5305,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "7.5.14", "version": "7.5.15",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "2834789aeb9ac182ad69bfdf9ae91856a59945ff" "reference": "d79c053d972856b8b941bb233e39dc521a5093f0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2834789aeb9ac182ad69bfdf9ae91856a59945ff", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d79c053d972856b8b941bb233e39dc521a5093f0",
"reference": "2834789aeb9ac182ad69bfdf9ae91856a59945ff", "reference": "d79c053d972856b8b941bb233e39dc521a5093f0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -5374,8 +5374,8 @@
"authors": [ "authors": [
{ {
"name": "Sebastian Bergmann", "name": "Sebastian Bergmann",
"role": "lead", "email": "sebastian@phpunit.de",
"email": "sebastian@phpunit.de" "role": "lead"
} }
], ],
"description": "The PHP Unit Testing framework.", "description": "The PHP Unit Testing framework.",
@@ -5385,7 +5385,7 @@
"testing", "testing",
"xunit" "xunit"
], ],
"time": "2019-07-15T06:24:08+00:00" "time": "2019-08-21T07:05:16+00:00"
}, },
{ {
"name": "sebastian/code-unit-reverse-lookup", "name": "sebastian/code-unit-reverse-lookup",
@@ -5945,8 +5945,8 @@
"authors": [ "authors": [
{ {
"name": "Sebastian Bergmann", "name": "Sebastian Bergmann",
"role": "lead", "email": "sebastian@phpunit.de",
"email": "sebastian@phpunit.de" "role": "lead"
} }
], ],
"description": "Library that helps with managing the version number of Git-hosted PHP projects", "description": "Library that helps with managing the version number of Git-hosted PHP projects",
@@ -5995,16 +5995,16 @@
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",
"version": "1.4.0", "version": "1.5.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/webmozart/assert.git", "url": "https://github.com/webmozart/assert.git",
"reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4",
"reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6012,8 +6012,7 @@
"symfony/polyfill-ctype": "^1.8" "symfony/polyfill-ctype": "^1.8"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.6", "phpunit/phpunit": "^4.8.36 || ^7.5.13"
"sebastian/version": "^1.0.1"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@@ -6042,7 +6041,7 @@
"check", "check",
"validate" "validate"
], ],
"time": "2018-12-25T11:19:39+00:00" "time": "2019-08-24T08:43:50+00:00"
} }
], ],
"aliases": [], "aliases": [],

View File

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

View File

@@ -15,23 +15,10 @@ class CreateRanksTable extends Migration
{ {
Schema::create('ranks', function (Blueprint $table) { Schema::create('ranks', function (Blueprint $table) {
$table->increments('id'); $table->increments('id');
$table->string('name'); $table->string('name');
$table->text('desc');
$table->text('acces_level'); $table->text('acces_level');
$table->boolean('schedule_see'); $table->text('permissions');
$table->boolean('schedule_edit');
$table->boolean('schedule_notify');
$table->boolean('message_see');
$table->boolean('message_edit');
$table->boolean('message_notify');
$table->boolean('paper_edit');
$table->boolean('paper_publish');
$table->boolean('paper_notify');
$table->boolean('inventory_see');
$table->boolean('inventory_edit');
$table->boolean('inventory_notify');
$table->boolean('user_see');
$table->boolean('user_edit');
$table->boolean('user_notify');
$table->timestamps(); $table->timestamps();
}); });
} }

View File

@@ -15,174 +15,9 @@ class RanksTableSeeder extends Seeder
[ [
'name' => "SuperAdmin", 'name' => "SuperAdmin",
'acces_level' => '2', 'acces_level' => '2',
'schedule_see' => true, 'desc' => 'Compte SuperAdmin donne toutes les permissions ne peux être modifié',
'schedule_edit' => true, 'permissions' => \App\Permission::allToString(1)
'schedule_notify' => true, ]
'message_see' => true,
'message_edit' => true,
'message_notify' => true,
'paper_edit' => true,
'paper_publish' => true,
'paper_notify' => true,
'inventory_see' => true,
'inventory_edit' => true,
'inventory_notify' => true,
'user_see' => true,
'user_edit' => true,
'user_notify' => true
],
[
'name' => "Cadet",
'acces_level' => '0',
'schedule_see' => false,
'schedule_edit' => false,
'schedule_notify' => false,
'message_see' => false,
'message_edit' => false,
'message_notify' => false,
'paper_edit' => false,
'paper_publish' => false,
'paper_notify' => false,
'inventory_see' => false,
'inventory_edit' => false,
'inventory_notify' => false,
'user_see' => false,
'user_edit' => false,
'user_notify' => false
],
[
'name' => "1er classe",
'acces_level' => '0',
'schedule_see' => false,
'schedule_edit' => false,
'schedule_notify' => false,
'message_see' => false,
'message_edit' => false,
'message_notify' => false,
'paper_edit' => false,
'paper_publish' => false,
'paper_notify' => false,
'inventory_see' => false,
'inventory_edit' => false,
'inventory_notify' => false,
'user_see' => false,
'user_edit' => false,
'user_notify' => false
],
[
'name' => "Caporal",
'acces_level' => '0',
'schedule_see' => false,
'schedule_edit' => false,
'schedule_notify' => false,
'message_see' => false,
'message_edit' => false,
'message_notify' => false,
'paper_edit' => false,
'paper_publish' => false,
'paper_notify' => false,
'inventory_see' => false,
'inventory_edit' => false,
'inventory_notify' => false,
'user_see' => false,
'user_edit' => false,
'user_notify' => false
],
[
'name' => "Caporal de section",
'acces_level' => '0',
'schedule_see' => false,
'schedule_edit' => false,
'schedule_notify' => false,
'message_see' => false,
'message_edit' => false,
'message_notify' => false,
'paper_edit' => false,
'paper_publish' => false,
'paper_notify' => false,
'inventory_see' => false,
'inventory_edit' => false,
'inventory_notify' => false,
'user_see' => false,
'user_edit' => false,
'user_notify' => false
],
[
'name' => "Sergent",
'acces_level' => '1',
'schedule_see' => true,
'schedule_edit' => false,
'schedule_notify' => false,
'message_see' => true,
'message_edit' => false,
'message_notify' => true,
'paper_edit' => false,
'paper_publish' => false,
'paper_notify' => false,
'inventory_see' => true,
'inventory_edit' => false,
'inventory_notify' => false,
'user_see' => false,
'user_edit' => false,
'user_notify' => false
],
[
'name' => "Sergent de section",
'acces_level' => '1',
'schedule_see' => true,
'schedule_edit' => false,
'schedule_notify' => false,
'message_see' => true,
'message_edit' => false,
'message_notify' => true,
'paper_edit' => false,
'paper_publish' => false,
'paper_notify' => false,
'inventory_see' => true,
'inventory_edit' => false,
'inventory_notify' => false,
'user_see' => false,
'user_edit' => false,
'user_notify' => false
],
[
'name' => "Adjudant 2e Classe",
'acces_level' => '2',
'schedule_see' => true,
'schedule_edit' => false,
'schedule_notify' => false,
'message_see' => true,
'message_edit' => true,
'message_notify' => true,
'paper_edit' => true,
'paper_publish' => false,
'paper_notify' => false,
'inventory_see' => true,
'inventory_edit' => false,
'inventory_notify' => false,
'user_see' => true,
'user_edit' => false,
'user_notify' => false
],
[
'name' => "Adjudant 1er Classe",
'acces_level' => '2',
'schedule_see' => true,
'schedule_edit' => true,
'schedule_notify' => true,
'message_see' => true,
'message_edit' => true,
'message_notify' => true,
'paper_edit' => true,
'paper_publish' => true,
'paper_notify' => true,
'inventory_see' => true,
'inventory_edit' => true,
'inventory_notify' => true,
'user_see' => true,
'user_edit' => true,
'user_notify' => true
],
]); ]);
} }
} }

View File

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

40
public/js/permissions.js vendored Normal file
View File

@@ -0,0 +1,40 @@
function switchPermissionSwitch(rank,valeur)
{
switch (valeur) {
case 'close':
$('#'+rank).val('-1');
$('#'+rank+'-close').addClass('btn-danger');
$('#'+rank+'-close').removeClass('btn-outline-danger');
$('#'+rank+'-slash').removeClass('btn-warning');
$('#'+rank+'-slash').addClass('btn-outline-warning');
$('#'+rank+'-plus').addClass('btn-outline-success');
$('#'+rank+'-plus').removeClass('btn-success');
break;
case 'slash':
$('#'+rank).val('0');
$('#'+rank+'-close').addClass('btn-outline-danger');
$('#'+rank+'-close').removeClass('btn-danger');
$('#'+rank+'-slash').addClass('btn-warning');
$('#'+rank+'-slash').removeClass('btn-outline-warning');
$('#'+rank+'-plus').addClass('btn-outline-success');
$('#'+rank+'-plus').removeClass('btn-success');
break;
case 'plus':
$('#'+rank).val('1');
$('#'+rank+'-close').addClass('btn-outline-danger');
$('#'+rank+'-close').removeClass('btn-danger');
$('#'+rank+'-slash').removeClass('btn-warning');
$('#'+rank+'-slash').addClass('btn-outline-warning');
$('#'+rank+'-plus').addClass('btn-success');
$('#'+rank+'-plus').removeClass('btn-outline-success');
break;
}
}

8
resources/assets/js/permissions.js vendored Normal file
View File

@@ -0,0 +1,8 @@
function switchPermissionSwitch(rank,valeur)
{
switch (valeur) {
case 'close':
$('#'+rank+'-close').addClass('btn-danger');
$('#'+rank+'-close').removeClass('btn-danger');
}
}

View File

@@ -24,8 +24,12 @@
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="btn-group w-100"> <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> @if(\Auth::user()->p('article_edit') == 1)
<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> <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> </div>
<div class="col-md-12"> <div class="col-md-12">

View File

@@ -27,7 +27,7 @@
<td>{{$item->name}}</td> <td>{{$item->name}}</td>
<td>{{$item->category()->name}}</td> <td>{{$item->category()->name}}</td>
<td>{!! $item->desc !!}</td> <td>{!! $item->desc !!}</td>
<td>{{$item->available()}}</td> <td>{{$item->available($event->date_begin,$event->date_end)}}</td>
<td> <td>
<button class="btn btn-primary btn-block" onclick='openModal("{{$item->id}}")'>Réserver</button> <button class="btn btn-primary btn-block" onclick='openModal("{{$item->id}}")'>Réserver</button>
</td> </td>
@@ -58,7 +58,7 @@
function openModal(id) function openModal(id)
{ {
$.get("/api/booking/modal/item/" + id + "?api_token="+api_token, function (data) { $.get("/api/booking/modal/item/" + id + "/{{$event_type}}/{{$event_id}}?api_token="+api_token, function (data) {
$("#modal-content").html(data); $("#modal-content").html(data);
}); });
$('#createModal').modal('toggle') $('#createModal').modal('toggle')

View File

@@ -116,7 +116,7 @@
function openModal(id) function openModal(id)
{ {
$.get("/api/booking/modal/edit/item/" + id + "?api_token="+api_token, function (data) { $.get("/api/booking/modal/edit/item/" + id + "/{{$event_type}}/{{$event_id}}?api_token="+api_token, function (data) {
$("#modal-content").html(data); $("#modal-content").html(data);
}); });
$('#editModal').modal('toggle') $('#editModal').modal('toggle')

View File

@@ -27,7 +27,7 @@
<div class="col-md-12"> <div class="col-md-12">
<div class="form-group"> <div class="form-group">
<label>Quantité</label> <label>Quantité</label>
<input class="form-control" name="amount" type="number" min="1" required value="1" max="{{$item->available()}}"> <input class="form-control" name="amount" type="number" min="1" required value="1" max="{{$item->available($event->date_begin,$event->date_end)}}">
<small class="form-text text-muted">Quantité d'item a réserver</small> <small class="form-text text-muted">Quantité d'item a réserver</small>
</div> </div>
</div> </div>

View File

@@ -27,7 +27,7 @@
<div class="col-md-12"> <div class="col-md-12">
<div class="form-group"> <div class="form-group">
<label>Quantité</label> <label>Quantité</label>
<input class="form-control" name="amount" type="number" min="1" required value="{{$booking->amount}}" max="{{$booking->item->available()}}"> <input class="form-control" name="amount" type="number" min="1" required value="{{$booking->amount}}" max="{{$booking->item->available($event->date_begin,$event->date_end)}}">
<small class="form-text text-muted">Quantité d'item a réserver</small> <small class="form-text text-muted">Quantité d'item a réserver</small>
</div> </div>
</div> </div>

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

@@ -0,0 +1,34 @@
@extends('layouts.admin.main')
@section('content')
<div class="col-md-12">
<div class="card">
<div class="card-header card-header-primary">
<h4>Configuration des grades</h4>
</div>
<div class="card-body mt-5">
<div class="row">
@foreach($ranks as $rank)
<div class="col-md-4">
<div class="card">
<div class="card-header @if($rank->id == 1) card-header-danger @else card-header-primary @endif">
<h4>{{$rank->name}}</h4>
</div>
<div class="card-body">
<div>
{{$rank->desc}}
</div>
<div class="row">
<div class="col-md-12">
<a href="/admin/config/ranks/{{$rank->id}}" class="btn btn-primary btn-block">Gérer</a>
</div>
</div>
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
@endsection

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>Configuration du grade {{$rank->name}}</h4>
</div>
<div class="card-body mt-5">
<form method="post" action="">
@csrf
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label>Nom</label>
<input class="form-control" type="text" name="name" value="{{$rank->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">{!! $rank->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']}}" value="{{$rank->p($r['ckey'])}}">
<h5>{{$r['communName']}}</h5>
<div class="btn-group">
<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>{{$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

@@ -1,162 +1,137 @@
@extends('layouts.admin.main') @extends('layouts.admin.main')
@section('content') @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="row">
<div class="col-lg-8 col-md-12"> <div class="col-lg-8 col-md-12">
<div class="card"> <div class="col-md-12">
<div class="card-header card-header-primary"> <div class="card">
<h4 class="card-title">Message publié</h4> <div class="card-header card-header-primary">
</div> <h4 class="card-title"> Cours à venir</h4>
<div class="card-body"> </div>
<div class="row"> <div class="card-body">
@foreach (\App\Message::all()->forPage(1,4); as $msg) @if(\Auth::user()->courses->isEmpty())
<div class="col-lg-6 text-center"> <div class="col-sm-12 text-center">
<a href="/admin/message/{{$msg->id}}"> <h4 class="m-4">Aucun cours à venir</h4>
<div style="height:2rem;">{{$msg->title}}</div> </div>
<br> @endif
<div class="msg-body" style="height:12rem;overflow:hidden"> @foreach (\Auth::user()->courses->take(6) as $course)
{!!$msg->body!!} <div class="col-sm-6">
</div> <div class="card">
<br> <div class="card-body">
</a> <h4><strong>{{$course->ocom}} - {{$course->name}}</strong></h4>
</div> <p class="float-left">{{date('Y-m-d',strtotime($course->event->date_begin))}}</p>
@endforeach <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> </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>
</div> </div>
<div class="col-sm-4 col-lg-4"> <div class="col-lg-4">
<div class="card card-profile"> <div class="col-12">
<div class="card-avatar"> <div class="card card-profile">
<a> <div class="card-avatar">
<img class="img" src="/assets/admin/images/avatar/user-{{\Auth::User()->avatar}}.jpg"> <a>
</a> <img class="img" src="/assets/admin/images/avatar/user-{{\Auth::User()->avatar}}.jpg">
</div> </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> {{\App\Rank::find(\Auth::User()->rank)->name}}</div>
</div> </div>
<hr> <div class="card-body">
<div class="card-text text-sm-center"> <div class="mx-auto d-block">
<a class="btn btn-block btn-secondary" href="/admin/profil">Profil</a> <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>
</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>
</div> </div>
@endsection @endsection

View File

@@ -9,7 +9,9 @@
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="btn-group btn-block"> <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> </div>
<hr> <hr>
<table id="log-data" class="table table-striped table-bordered"> <table id="log-data" class="table table-striped table-bordered">
@@ -35,8 +37,12 @@
<td>{!! $item->desc !!}</td> <td>{!! $item->desc !!}</td>
<td style="width: 12%;"> <td style="width: 12%;">
<div class="btn-group"> <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 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> </div>
</td> </td>
</tr> </tr>

View File

@@ -8,8 +8,6 @@
</a></strong> </a></strong>
</div> </div>
<div class="card-body"> <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"> <div class="material-datatables">
<table id="log-data" class="table table-striped table-no-bordered table-hover dataTable dtr-inline"> <table id="log-data" class="table table-striped table-no-bordered table-hover dataTable dtr-inline">
<thead> <thead>
@@ -26,7 +24,7 @@
<tr> <tr>
<td>{{$item->created_at}}</td> <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->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>{{\App\User::find($item->user_id)->fullname()}}</td>
<td><a href="">{{$item->event}}</a></td> <td><a href="">{{$item->event}}</a></td>
</tr> </tr>

View File

@@ -9,10 +9,17 @@
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="btn-group btn-block"> <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> </div>
<hr> <hr>
<div class="row"> <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) @foreach($news as $n)
<div class="col-md-4"> <div class="col-md-4">
<div class="card"> <div class="card">
@@ -26,8 +33,12 @@
</div> </div>
<div class="card-footer"> <div class="card-footer">
<div class="btn-group"> <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> @if(\Auth::user()->p('news_edit') == 1)
<a type="button" class="btn btn-danger" onclick="deleteEvent({{$n->id}});"><i class="fa fa-times-circle" style="color:white;"></i></a> <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> </div>
</div> </div>

View File

@@ -2,83 +2,64 @@
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head> </head>
<body> <body>
Du <strong>{{$event->date_begin}}</strong> au <strong>{{$event->date_end}}</strong><br> Du <strong>{{$event->date_begin}}</strong> au <strong>{{$event->date_end}}</strong>
<small>{{$event->location}} </small> <div>
@if ($event->is_mandatory) {{$event->location}}
Obligatoire - @if ($event->is_mandatory)
@else (Activité Obligatoire)
Optionnel - @else
@endif (Activité Optionnel)
@if (is_int($event->type)) @endif
{{$event->type}} </div>
@else <div>
{{\App\ComplementaryActivity::find($event->type)->name}} @if (is_int($event->type))
@endif {{$event->type}}
{!!$event->desc!!} @else
{{\App\ComplementaryActivity::find($event->type)->name}}
@endif
</div>
<div>
{!!$event->desc!!}
</div>
@if (!$event->courses->isEmpty()) @if (!$event->courses->isEmpty())
<h4 class="title text-center">Horaire</h4> <div class="w-100 mt-2">
<table> <h4>Horaire</h4>
<thead> <table style="width:100%" class="table">
<th>Niveau</th>
@for ($p = 1; $p <= \App\Config::getData('admin_periode_nb'); $p++)
<th>
Période {{$p}} <small>{{\App\Config::all()->where('name','admin_periode_begin')->first()->data[$p]}} à {{\App\Config::all()->where('name','admin_periode_end')->first()->data[$p]}} </small>
</th>
@endfor
</thead>
<tbody>
@for ($l = 1; $l <= \App\Config::getData('admin_level_in_schedule_nb'); $l++)
<tr> <tr>
<td class="col-md-2 m-3"> <th>Niveau</th>
Niveau {{$l}}
</td>
@for ($p = 1; $p <= \App\Config::getData('admin_periode_nb'); $p++) @for ($p = 1; $p <= \App\Config::getData('admin_periode_nb'); $p++)
<th>
Période {{$p}} <small>{{\App\Config::all()->where('name','admin_periode_begin')->first()->data[$p]}} à {{\App\Config::all()->where('name','admin_periode_end')->first()->data[$p]}}</small>
</th>
@endfor
</tr>
@for ($l = 1; $l <= \App\Config::getData('admin_level_in_schedule_nb'); $l++)
<tr>
<td> <td>
@foreach ($event->courses as $course) Niveau {{$l}}
@if ($course->periode == $p && $course->level == $l) </td>
{{$course->name}} @for ($p = 1; $p <= \App\Config::getData('admin_periode_nb'); $p++)
<td>
@if(\App\User::find($course->user_id)) @foreach($event->courses as $course)
{{\App\User::find($course->user_id)->fullname()}} @if($course->periode == $p && $course->level == $l)
@else <table class="w-100 mx-5 table-borderless bg-white">
Utilisateur Inconnu <tr>
<td>{{$course->name}}</td>
<td class="text-right">{{$course->user->fullname()}}</td>
</tr>
<tr>
<td>{{$course->ocom}}</td>
<td class="text-right">{{$course->location}}</td>
</tr>
</table>
@endif @endif
{{$course->ocom}} @endforeach
{{$course->location}} </td>
<a>Réservation de materiel</a> @endfor
<table> </tr>
@if (!$course->bookings->isEmpty()) @endfor
<thead class="row"> </table>
<th class="col-sm-8 p-2"> </div>
<strong>Item</strong>
</th>
<th class="col-sm-4 text-right p-2">
<strong>Quantité</strong>
</th>
</thead>
<tbody>
@foreach ($course->bookings as $booking)
<tr>
<td class="col-sm-8 p-2">
<a href="/admin/item/{{$booking->item->id}}">{{$booking->item->name}}</a>
</td>
<td class="col-sm-4 text-right p-2">
{{$booking->amount}}
</td>
</tr>
@endforeach
</tbody>
@else
<p class="text-center">
<strong>Aucune réservation</strong>
</p>
@endif
</table>
@endif
@endforeach
@endfor
@endfor
</table>
@endif @endif
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>

View File

@@ -2,6 +2,206 @@
@section('content') @section('content')
<div class="row"> <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">
<div class="row">
<div class="col-sm-6">
<h3 class="card-title">3.2.2</h3>
<p class="category">2019-09-11</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="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">
Réactivation des réservations
</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 de l'inventaire
</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 réservations
</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="col-md-12">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">

View File

@@ -95,7 +95,7 @@
<div class="form-group"> <div class="form-group">
<label for="rank">Grade</label> <label for="rank">Grade</label>
<select class="form-control" name="rank" id="rank" required> <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) @foreach ($RankList as $rank)
<option value="{{$rank->id}}">{{$rank->name}}</option> <option value="{{$rank->id}}">{{$rank->name}}</option>
@endforeach @endforeach

View File

@@ -22,7 +22,7 @@
<tr> <tr>
<td style="width: 5%;">{{$item->id}}</td> <td style="width: 5%;">{{$item->id}}</td>
<td>{{$item->fullname()}}</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>{{\App\Job::find($item->job)->name}}</td>
<td class="td-actions text-right" style="width: 12%;"> <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> <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"> <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"> <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> <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> </div>
<div class="col-sm-6 text-center"> <div class="col-sm-6 text-center">

View File

@@ -24,11 +24,11 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="pws">Entrer votre nouveau mot de passe</label> <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>
<div class="form-group"> <div class="form-group">
<label for="pwsc">Confirmer votre nouveau mot de passe</label> <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> </div>
<button type="submit" id="submit" class="btn btn-primary" disabled>Enregistrer</button> <button type="submit" id="submit" class="btn btn-primary" disabled>Enregistrer</button>
</form> </form>

View File

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

View File

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

View File

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

View File

@@ -12,9 +12,13 @@
<div class="modal-footer"> <div class="modal-footer">
<div class="col-md-6"> <div class="col-md-6">
<div class="btn-group"> <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> <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>
<button disabled 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></button> @endif
<button class="btn btn-danger" data-toggle="tooltip" data-placement="bottom" title="Supprimer" onclick="deleteEvent({{$event->id}})"><i class="material-icons">close</i></button> <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>
@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> </div>
<div class="col-md-6 text-right"> <div class="col-md-6 text-right">

View File

@@ -20,47 +20,41 @@ Route::middleware('auth:api')->group(function () {
return $request->user(); return $request->user();
}); });
/** Calendar Route */ Route::get('/schedule/events/modal/full/{id}/{db_type}','ScheduleController@loadModalFull')->middleware('perm:schedule_see');
Route::post('/calendar/generate', 'CalendarController@generate'); Route::get('/schedule/events/add/modal/{type}/{date}','ScheduleController@loadModalDefautType')->middleware('perm:schedule_add');
Route::post('/calendar_ecc/generate', 'ECCController@generateCalendar'); Route::post('/schedule/event/delete/{id}','ScheduleController@delete')->middleware('perm:schedule_delete');
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');
/** Booking */ /** Booking */
Route::get('/booking/modal/item/{id}','BookingController@modalItem'); Route::get('/booking/modal/item/{id}/{event_type}/{event_id}','BookingController@modalItem')->middleware('perm:booking_see');
Route::get('/booking/modal/edit/item/{id}','BookingController@modalItemEdit'); Route::get('/booking/modal/edit/item/{id}/{event_type}/{event_id}','BookingController@modalItemEdit')->middleware('perm:booking_edit');
Route::post('/booking/delete','BookingController@destroy'); Route::post('/booking/delete','BookingController@destroy')->middleware('perm:booking_delete');
/** Picture */ /** Picture */
Route::post('/picture/delete/{id}','PictureController@destroy'); Route::post('/picture/delete/{id}','PictureController@destroy')->middleware('perm:picture_delete');
/** Message Route */ /** Message Route */
Route::post('/message/delete', 'MessageController@destroy'); Route::post('/message/delete', 'MessageController@destroy')->middleware('perm:msg_delete');
/** News Route */ /** News Route */
Route::post('/news/delete','NewsController@destroy'); Route::post('/news/delete','NewsController@destroy')->middleware('perm:news_delete');
/** User Route */ /** User Route */
Route::post('/user/delete', 'UserController@destroy'); Route::post('/user/delete', 'UserController@destroy')->middleware('perm:user_delete');
Route::get('/user/list', 'UserController@apiList'); Route::get('/user/list', 'UserController@apiList')->middleware('perm:user_see');
/** Inventory Route */ /** Inventory Route */
Route::post('/item/delete', 'ItemController@destroy'); Route::post('/item/delete', 'ItemController@destroy')->middleware('perm:inventory_delete');
/** Item Category */ /** Item Category */
Route::post('/itemcategory/delete/{id}','ItemCategoryController@destroy'); Route::post('/itemcategory/delete/{id}','ItemCategoryController@destroy')->middleware('perm:inventory_edit');
/** Config Route */ /** Config Route */
Route::post('/config/general/save', 'ConfigController@update'); Route::post('/config/general/save', 'ConfigController@update')->middleware('perm:config_edit');
Route::post('/config/activity/delete', 'ComplementaryActivityController@destroy'); Route::post('/config/activity/delete', 'ComplementaryActivityController@destroy')->middleware('perm:config_delete');
Route::get('/user/perm/{id}', function($id) { Route::get('/user/perm/{id}', function($id) {
$user = \App\User::find($id); $user = \App\User::find($id);
return $user->getPerm("schedule_edit"); return $user->getPerm("schedule_edit");
}); })->middleware('perm:user_see');
}); });
Route::get('/admin/ping', function(){ Route::get('/admin/ping', function(){
$users = \App\User::all(); $users = \App\User::all();
@@ -84,25 +78,3 @@ Route::get('/admin/ping', function(){
return "pong"; 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'); clog('add','success','Test');
}); });
Route::middleware(['auth','admin'])->group(function () { Route::middleware(['auth'])->group(function () {
/* Espace Administration Route */ /* Espace Administration Route */
@@ -39,107 +39,105 @@ Route::middleware(['auth','admin'])->group(function () {
Route::get('/admin', 'AdminController@index')->name('admin'); Route::get('/admin', 'AdminController@index')->name('admin');
Route::get('/admin/update', 'AdminController@update'); 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 */ /** Schedule */
Route::get('/admin/schedule/pdf/event/{id}','ScheduleController@printtopdf'); Route::get('/admin/schedule', 'CalendarController@index')->middleware('perm:schedule_see');
Route::get('/admin/schedule/add/{date}','ScheduleController@create'); Route::get('/admin/schedule/pdf/event/{id}','ScheduleController@printtopdf')->middleware('perm:schedule_see');
Route::get('/admin/schedule/edit/{id}','EventController@edit'); Route::get('/admin/schedule/add/{date}','ScheduleController@create')->middleware('perm:schedule_add');
Route::post('/admin/schedule/event/add','EventController@Store'); Route::get('/admin/schedule/edit/{id}','EventController@edit')->middleware('perm:schedule_edit');
Route::post('/admin/schedule/event/edit/{id}','EventController@update'); 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 */ /** Statistique */
Route::get('/admin/stats/log' , 'LogController@index'); Route::get('/admin/stats/log' , 'LogController@index')->middleware('perm:stats_see');;
/** Message */ /** Message */
Route::get('/admin/message' , 'MessageController@index'); Route::get('/admin/message' , 'MessageController@index')->middleware('perm:msg_see');
Route::get('/admin/message/add' , 'MessageController@create'); Route::get('/admin/message/add' , 'MessageController@create')->middleware('perm:msg_add');
Route::post('/admin/message/add' , 'MessageController@store'); Route::post('/admin/message/add' , 'MessageController@store')->middleware('perm:msg_add');
Route::get('/admin/message/{id}', ['uses' =>'MessageController@show']); Route::get('/admin/message/{id}', ['uses' =>'MessageController@show'])->middleware('perm:msg_see');
/** User */ /** User */
Route::get('/admin/user' , 'UserController@index'); Route::get('/admin/user' , 'UserController@index')->middleware('perm:user_see');
Route::get('/admin/user/add' , 'UserController@create'); Route::get('/admin/user/add' , 'UserController@create')->middleware('perm:user_add');
Route::post('/admin/user/add' , 'UserController@store'); Route::post('/admin/user/add' , 'UserController@store')->middleware('perm:user_add');
Route::get('/admin/user/edit/{id}' , 'UserController@edit'); Route::get('/admin/user/edit/{id}' , 'UserController@edit')->middleware('perm:user_edit');
Route::post('/admin/user/edit/{id}' , 'UserController@update'); Route::post('/admin/user/edit/{id}' , 'UserController@update')->middleware('perm:user_edit');
/** Config */ /** Config */
Route::get('/admin/config/job' , 'JobController@index'); Route::get('/admin/config/job' , 'JobController@index')->middleware('perm:config_see');
Route::get('/admin/config/job/add' , 'JobController@create'); Route::get('/admin/config/job/add' , 'JobController@create')->middleware('perm:config_add');
Route::post('/admin/config/job/add' , 'JobController@store'); Route::post('/admin/config/job/add' , 'JobController@store')->middleware('perm:config_add');
Route::get('/admin/config/job/edit/{id}' , 'JobController@edit'); Route::get('/admin/config/job/edit/{id}' , 'JobController@edit')->middleware('perm:config_add');
Route::get('/admin/config/schedule' , 'ScheduleController@index'); Route::get('/admin/config/schedule' , 'ScheduleController@index')->middleware('perm:config_edit');
Route::post('/admin/config/schedule/edit' , 'ScheduleController@update'); Route::post('/admin/config/schedule/edit' , 'ScheduleController@update')->middleware('perm:config_edit');
Route::get('/admin/config/activity' , 'ComplementaryActivityController@index'); Route::get('/admin/config/activity' , 'ComplementaryActivityController@index')->middleware('perm:config_edit');
Route::get('/admin/config/activity/add' , 'ComplementaryActivityController@create'); Route::get('/admin/config/activity/add' , 'ComplementaryActivityController@create')->middleware('perm:config_edit');
Route::post('/admin/config/activity/add' , 'ComplementaryActivityController@store'); Route::post('/admin/config/activity/add' , 'ComplementaryActivityController@store')->middleware('perm:config_edit');
Route::get('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@edit'); Route::get('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@edit')->middleware('perm:config_edit');
Route::post('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@update'); Route::post('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@update')->middleware('perm:config_edit');
Route::post('/admin/config/general/edit','ConfigController@update'); Route::post('/admin/config/general/edit','ConfigController@update')->middleware('perm:config_edit');
Route::get('/admin/config/' , 'ConfigController@index'); Route::get('/admin/config/' , 'ConfigController@index')->middleware('perm:config_edit');
Route::get('/admin/config/customisation','ConfigController@customisation'); Route::get('/admin/config/customisation','ConfigController@customisation')->middleware('perm:config_edit');
Route::post('/admin/config/customisation','ConfigController@customisationUpdate'); Route::post('/admin/config/customisation','ConfigController@customisationUpdate')->middleware('perm:config_edit');
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 */ /** Public page */
Route::get('/admin/public/edit/{config}', 'PublicController@edit'); Route::get('/admin/public/edit/{config}', 'PublicController@edit')->middleware('perm:config_edit');
Route::post('/admin/public/edit/{config}', 'PublicController@update'); Route::post('/admin/public/edit/{config}', 'PublicController@update')->middleware('perm:config_edit');
/** Picture */ /** Picture */
Route::get('/admin/picture','PictureController@indexAdmin'); Route::get('/admin/picture','PictureController@indexAdmin')->middleware('perm:picture_see');
Route::get('/admin/picture/add','PictureController@create'); Route::get('/admin/picture/add','PictureController@create')->middleware('perm:picture_add');
Route::post('/admin/picture/add','PictureController@store'); Route::post('/admin/picture/add','PictureController@store')->middleware('perm:picture_add');
Route::get('/admin/picture/edit/{id}','PictureController@edit'); Route::get('/admin/picture/edit/{id}','PictureController@edit')->middleware('perm:picture_edit');
Route::post('/admin/picture/edit/{id}','PictureController@update'); Route::post('/admin/picture/edit/{id}','PictureController@update')->middleware('perm:picture_edit');
/** Inventory */ /** Inventory */
Route::get('/admin/inventory' , 'InventoryController@index'); Route::get('/admin/inventory' , 'InventoryController@index')->middleware('perm:inventory_see');
Route::get('/admin/inventory/management','InventoryController@management'); Route::get('/admin/inventory/management','InventoryController@management')->middleware('perm:inventory_edit');
/** Item Category */ /** Item Category */
Route::get('/admin/inventory/management/category','ItemCategoryController@index'); Route::get('/admin/inventory/management/category','ItemCategoryController@index')->middleware('perm:inventory_edit');
Route::get('/admin/inventory/management/category/add','ItemCategoryController@create'); Route::get('/admin/inventory/management/category/add','ItemCategoryController@create')->middleware('perm:inventory_add');
Route::post('/admin/inventory/management/category/add','ItemCategoryController@store'); Route::post('/admin/inventory/management/category/add','ItemCategoryController@store')->middleware('perm:inventory_add');
Route::get('/admin/inventory/management/category/edit/{id}','ItemCategoryController@edit'); Route::get('/admin/inventory/management/category/edit/{id}','ItemCategoryController@edit')->middleware('perm:inventory_edit');
Route::post('/admin/inventory/management/category/edit/{id}','ItemCategoryController@update'); Route::post('/admin/inventory/management/category/edit/{id}','ItemCategoryController@update')->middleware('perm:inventory_edit');
/** News */ /** News */
Route::get('/admin/news','NewsController@indexAdmin'); Route::get('/admin/news','NewsController@indexAdmin')->middleware('perm:news_see');
Route::get('/admin/news/add','NewsController@create'); Route::get('/admin/news/add','NewsController@create')->middleware('perm:news_add');
Route::post('/admin/news/add','NewsController@store'); Route::post('/admin/news/add','NewsController@store')->middleware('perm:news_add');
Route::get('/admin/news/edit/{id}','NewsController@edit'); Route::get('/admin/news/edit/{id}','NewsController@edit')->middleware('perm:news_edit');
Route::post('/admin/news/edit/{id}','NewsController@update'); Route::post('/admin/news/edit/{id}','NewsController@update')->middleware('perm:news_edit');
/** Articles */ /** Articles */
Route::get('/admin/article','ArticleController@index'); Route::get('/admin/article','ArticleController@index')->middleware('perm:article_see');
Route::get('/admin/article/activity/edit/{id}','ArticleController@editActivity'); Route::get('/admin/article/activity/edit/{id}','ArticleController@editActivity')->middleware('perm:article_edit');
Route::post('/admin/article/activity/edit/{id}','ArticleController@updateActivity'); Route::post('/admin/article/activity/edit/{id}','ArticleController@updateActivity')->middleware('perm:article_edit');
Route::get('/admin/article/activity/picture/{id}','ArticleController@pictureActivity'); Route::get('/admin/article/activity/picture/{id}','ArticleController@pictureActivity')->middleware('perm:article_edit');
Route::get('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityCreate'); Route::get('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityCreate')->middleware('perm:article_edit');
Route::post('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityStore'); Route::post('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityStore')->middleware('perm:article_edit');
/** Booking */ /** Booking */
Route::get('/admin/booking','BookingController@index'); Route::get('/admin/booking','BookingController@index')->middleware('perm:booking_see');
Route::get('/admin/booking/{id}','BookingController@show'); Route::get('/admin/booking/{id}','BookingController@show')->middleware('perm:booking_see');
Route::get('/admin/booking/{type}/{id}','BookingController@index'); Route::get('/admin/booking/{type}/{id}','BookingController@index')->middleware('perm:booking_see');
Route::get('/admin/booking/{type}/{id}/add','BookingController@create'); Route::get('/admin/booking/{type}/{id}/add','BookingController@create')->middleware('perm:booking_add');
Route::post('/admin/booking/{type}/{id}/add','BookingController@store'); Route::post('/admin/booking/{type}/{id}/add','BookingController@store')->middleware('perm:booking_add');
Route::get('/admin/inventory/booking' , 'InventoryController@booking'); Route::get('/admin/inventory/booking' , 'InventoryController@booking')->middleware('perm:inventory_see');
Route::post('/admin/booking/edit','BookingController@update'); Route::post('/admin/booking/edit','BookingController@update')->middleware('perm:booking_see')->middleware('perm:booking_edit');
/** Item */ /** Item */
Route::get('/admin/item/add' , 'ItemController@create'); Route::get('/admin/item/add' , 'ItemController@create')->middleware('perm:inventory_add');
Route::get('/admin/item/edit/{id}' , 'ItemController@edit'); Route::get('/admin/item/edit/{id}' , 'ItemController@edit')->middleware('perm:inventory_edit');
Route::post('/admin/item/add' , 'ItemController@store'); Route::post('/admin/item/add' , 'ItemController@store')->middleware('perm:inventory_add');
Route::post('/admin/item/edit/{id}' , 'ItemController@update'); Route::post('/admin/item/edit/{id}' , 'ItemController@update')->middleware('perm:inventory_edit');
/** Local */
Route::get('/admin/config/local' , 'LocalController@index');
/** Notification */ /** Notification */
Route::get('/admin/notication/mark','UserController@notificationmarkALL'); Route::get('/admin/notication/mark','UserController@notificationmarkALL');
@@ -161,31 +159,4 @@ Route::middleware(['auth','admin'])->group(function () {
Route::get('/admin/guide','FilesController@guide'); 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');
});