diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 660e753e..39e16ac7 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -22,12 +22,9 @@ class LoginController extends Controller protected function redirectTo() { - if(\Auth::User()->getAcces(2)) - { - return '/admin'; - } else if(\Auth::User()->getAcces(1)){ - return '/ecc'; - } + + return '/admin'; + } /** * Where to redirect users after login. diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 7a8313ce..2ef021e0 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -42,7 +42,16 @@ class BookingController extends Controller */ 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(); } - 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]); } } diff --git a/app/Http/Controllers/EventController.php b/app/Http/Controllers/EventController.php index 87d4cacb..ffdb46d2 100644 --- a/app/Http/Controllers/EventController.php +++ b/app/Http/Controllers/EventController.php @@ -84,7 +84,7 @@ class EventController extends Controller } } clog('add','success','a ajouté un évènement',null,'App\Event',$event->id); - return redirect('/admin/calendar')->with('success','Événement ajouter à l\'horaire'); + return redirect('/admin/schedule')->with('success','Événement ajouter à l\'horaire'); } /** @@ -175,7 +175,7 @@ class EventController extends Controller } } clog('edit','success','a modifié un évènement',null,'App\Event',$event->id); - return redirect('/admin/calendar')->with('success','Modification à l\'événement sauvegarder à l\'horaire'); + return redirect('/admin/schedule')->with('success','Modification à l\'événement sauvegarder à l\'horaire'); } /** diff --git a/app/Http/Controllers/PermissionController.php b/app/Http/Controllers/PermissionController.php new file mode 100644 index 00000000..3e656a99 --- /dev/null +++ b/app/Http/Controllers/PermissionController.php @@ -0,0 +1,85 @@ + Rank::all()]); } /** @@ -24,7 +24,7 @@ class RankController extends Controller */ public function create() { - // + return view('admin.configs.ranks.add'); } /** @@ -35,7 +35,25 @@ class RankController extends Controller */ public function store(Request $request) { - // + $r = new Rank(); + + $r->name = $request->name; + $r->desc = $request->desc; + $r->acces_level = 1; + + $tpermission = []; + + foreach (\App\Permission::all() as $perm) + { + $tkey = $perm->ckey; + $tpermission[$tkey] = $request->$tkey; + } + + $r->permissions = json_encode($tpermission); + $r->save(); + + clog('add','success','Grade ajouté avec succès'); + return redirect('/admin/config/ranks')->with('success','Grade ajouté avec succès'); } /** @@ -44,9 +62,9 @@ class RankController extends Controller * @param \App\Rank $rank * @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) { - // + } /** @@ -67,9 +85,26 @@ class RankController extends Controller * @param \App\Rank $rank * @return \Illuminate\Http\Response */ - public function update(Request $request, Rank $rank) + public function update(Request $request, $rank) { - // + $r = Rank::find($rank); + + $r->name = $request->name; + $r->desc = $request->desc; + + $tpermission = []; + + foreach (\App\Permission::all() as $perm) + { + $tkey = $perm->ckey; + $tpermission[$tkey] = $request->$tkey; + } + + $r->permissions = json_encode($tpermission); + $r->save(); + + clog('edit','success','Grade modifié avec succès'); + return redirect('/admin/config/ranks')->with('success','Grade modifié avec succès'); } /** diff --git a/app/Http/Controllers/ScheduleController.php b/app/Http/Controllers/ScheduleController.php index bf76106b..e382ac57 100644 --- a/app/Http/Controllers/ScheduleController.php +++ b/app/Http/Controllers/ScheduleController.php @@ -196,7 +196,8 @@ class ScheduleController extends Controller public function printtopdf($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'); } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 8c5512fd..c64b3952 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -69,7 +69,7 @@ class UserController extends Controller } $user->avatar = rand(1,16); - $user->rank = request('rank'); + $user->rank_id = request('rank'); $user->job = request('job'); $user->password = bcrypt(request('psw')); $user->api_token = str_random(60); @@ -141,7 +141,7 @@ class UserController extends Controller $user->age = request('age'); } - $user->rank = request('rank'); + $user->rank_id = request('rank'); $user->job = request('job'); if (request('psw') != null) { $user->password = bcrypt(request('psw')); @@ -231,7 +231,7 @@ class UserController extends Controller $user->save(); - return back()->with('success', 'Modification enregistré'); + return redirect('/admin/profil')->with('success', 'Modification enregistré'); } public function UserAdress() @@ -247,7 +247,7 @@ class UserController extends Controller $user->save(); - return back()->with('success', 'Modification enregistré'); + return redirect('/admin/profil')->with('success', 'Modification enregistré'); } public function apiList() diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 76785d61..649e7b55 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -61,5 +61,6 @@ class Kernel extends HttpKernel 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'staff' => \App\Http\Middleware\AccesStaff::class, 'admin' => \App\Http\Middleware\AccesAdmin::class, + 'perm' => \App\Http\Middleware\CheckPerm::class, ]; } diff --git a/app/Http/Middleware/CheckPerm.php b/app/Http/Middleware/CheckPerm.php new file mode 100644 index 00000000..ced3b4df --- /dev/null +++ b/app/Http/Middleware/CheckPerm.php @@ -0,0 +1,25 @@ +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); + } +} diff --git a/app/Item.php b/app/Item.php index f4e585e9..17391c9b 100644 --- a/app/Item.php +++ b/app/Item.php @@ -51,15 +51,52 @@ class Item extends Model { 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; - - 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; diff --git a/app/Permission.php b/app/Permission.php new file mode 100644 index 00000000..9f60eee4 --- /dev/null +++ b/app/Permission.php @@ -0,0 +1,321 @@ + [ + '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); + } +} diff --git a/app/Rank.php b/app/Rank.php index 1e74e9cb..92f07c20 100644 --- a/app/Rank.php +++ b/app/Rank.php @@ -6,7 +6,26 @@ use Illuminate\Database\Eloquent\Model; class Rank extends Model { - protected $casts = [ - 'perm' => 'array', - ]; + public function permissions() + { + 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); + } } diff --git a/app/User.php b/app/User.php index 6fe3f330..32b5fae3 100644 --- a/app/User.php +++ b/app/User.php @@ -27,6 +27,11 @@ class User extends Authenticatable 'password', 'remember_token', ]; + public function rank() + { + return $this->belongsTo('App\Rank'); + } + public function logs() { return $this->hasMany(Log::class); @@ -279,4 +284,14 @@ class User extends Authenticatable { return $this->hasMany('App\News'); } + + public function permission($perm) + { + return $this->rank->permission($perm); + } + + public function p($perm) + { + return $this->permission($perm); + } } diff --git a/composer.lock b/composer.lock index 018683ec..9d6ca2fb 100644 --- a/composer.lock +++ b/composer.lock @@ -1,28 +1,28 @@ { "_readme": [ "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" ], "content-hash": "24a0b732198a68feae22520e2527cb91", "packages": [ { "name": "barryvdh/laravel-dompdf", - "version": "v0.8.4", + "version": "v0.8.5", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-dompdf.git", - "reference": "3fd817065e1c820b1ddace8b2bf65ca45088df4f" + "reference": "7393732b2f3a3ee357974cbb0c46c9b65b84dad1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/3fd817065e1c820b1ddace8b2bf65ca45088df4f", - "reference": "3fd817065e1c820b1ddace8b2bf65ca45088df4f", + "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/7393732b2f3a3ee357974cbb0c46c9b65b84dad1", + "reference": "7393732b2f3a3ee357974cbb0c46c9b65b84dad1", "shasum": "" }, "require": { "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" }, "type": "library", @@ -60,7 +60,7 @@ "laravel", "pdf" ], - "time": "2019-02-26T18:07:43+00:00" + "time": "2019-08-23T14:30:33+00:00" }, { "name": "barryvdh/laravel-ide-helper", @@ -187,16 +187,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.2.3", + "version": "1.2.4", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "f26a67e397be0e5c00d7c52ec7b5010098e15ce5" + "reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/f26a67e397be0e5c00d7c52ec7b5010098e15ce5", - "reference": "f26a67e397be0e5c00d7c52ec7b5010098e15ce5", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/10bb96592168a0f8e8f6dcde3532d9fa50b0b527", + "reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527", "shasum": "" }, "require": { @@ -239,7 +239,7 @@ "ssl", "tls" ], - "time": "2019-08-02T09:05:43+00:00" + "time": "2019-08-30T08:44:50+00:00" }, { "name": "composer/composer", @@ -875,25 +875,25 @@ }, { "name": "fideloper/proxy", - "version": "4.2.0", + "version": "4.2.1", "source": { "type": "git", "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "39a4c2165e578bc771f5dc031c273210a3a9b6d2" + "reference": "03085e58ec7bee24773fa5a8850751a6e61a7e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/39a4c2165e578bc771f5dc031c273210a3a9b6d2", - "reference": "39a4c2165e578bc771f5dc031c273210a3a9b6d2", + "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/03085e58ec7bee24773fa5a8850751a6e61a7e8a", + "reference": "03085e58ec7bee24773fa5a8850751a6e61a7e8a", "shasum": "" }, "require": { - "illuminate/contracts": "~5.0|~6.0", + "illuminate/contracts": "^5.0|^6.0|^7.0", "php": ">=5.4.0" }, "require-dev": { - "illuminate/http": "~5.6|~6.0", - "mockery/mockery": "~1.0", + "illuminate/http": "^5.0|^6.0|^7.0", + "mockery/mockery": "^1.0", "phpunit/phpunit": "^6.0" }, "type": "library", @@ -925,7 +925,7 @@ "proxy", "trusted proxy" ], - "time": "2019-07-29T16:49:45+00:00" + "time": "2019-09-03T16:45:42+00:00" }, { "name": "guzzlehttp/guzzle", @@ -1559,8 +1559,8 @@ "authors": [ { "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", @@ -1572,16 +1572,16 @@ }, { "name": "league/flysystem", - "version": "1.0.53", + "version": "1.0.55", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "08e12b7628f035600634a5e76d95b5eb66cea674" + "reference": "33c91155537c6dc899eacdc54a13ac6303f156e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/08e12b7628f035600634a5e76d95b5eb66cea674", - "reference": "08e12b7628f035600634a5e76d95b5eb66cea674", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/33c91155537c6dc899eacdc54a13ac6303f156e6", + "reference": "33c91155537c6dc899eacdc54a13ac6303f156e6", "shasum": "" }, "require": { @@ -1652,20 +1652,20 @@ "sftp", "storage" ], - "time": "2019-06-18T20:09:29+00:00" + "time": "2019-08-24T11:17:19+00:00" }, { "name": "monolog/monolog", - "version": "1.24.0", + "version": "1.25.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266" + "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", - "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/70e65a5470a42cfec1a7da00d30edb6e617e8dcf", + "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf", "shasum": "" }, "require": { @@ -1730,7 +1730,7 @@ "logging", "psr-3" ], - "time": "2018-11-05T09:00:11+00:00" + "time": "2019-09-06T13:49:17+00:00" }, { "name": "nesbot/carbon", @@ -1828,9 +1828,9 @@ "authors": [ { "name": "Tim Lytle", - "role": "Developer", "email": "tim@nexmo.com", - "homepage": "http://twitter.com/tjlytle" + "homepage": "http://twitter.com/tjlytle", + "role": "Developer" } ], "description": "PHP Client for using Nexmo's API.", @@ -1838,16 +1838,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.2.3", + "version": "v4.2.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "e612609022e935f3d0337c1295176505b41188c8" + "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e612609022e935f3d0337c1295176505b41188c8", - "reference": "e612609022e935f3d0337c1295176505b41188c8", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/97e59c7a16464196a8b9c77c47df68e4a39a45c4", + "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4", "shasum": "" }, "require": { @@ -1885,7 +1885,7 @@ "parser", "php" ], - "time": "2019-08-12T20:17:41+00:00" + "time": "2019-09-01T07:51:21+00:00" }, { "name": "paragonie/random_compat", @@ -2818,16 +2818,16 @@ }, { "name": "symfony/console", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9" + "reference": "de63799239b3881b8a08f8481b22348f77ed7b36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9", - "reference": "8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9", + "url": "https://api.github.com/repos/symfony/console/zipball/de63799239b3881b8a08f8481b22348f77ed7b36", + "reference": "de63799239b3881b8a08f8481b22348f77ed7b36", "shasum": "" }, "require": { @@ -2889,20 +2889,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-07-24T17:13:59+00:00" + "time": "2019-08-26T08:26:39+00:00" }, { "name": "symfony/css-selector", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "105c98bb0c5d8635bea056135304bd8edcc42b4d" + "reference": "c6e5e2a00db768c92c3ae131532af4e1acc7bd03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/105c98bb0c5d8635bea056135304bd8edcc42b4d", - "reference": "105c98bb0c5d8635bea056135304bd8edcc42b4d", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/c6e5e2a00db768c92c3ae131532af4e1acc7bd03", + "reference": "c6e5e2a00db768c92c3ae131532af4e1acc7bd03", "shasum": "" }, "require": { @@ -2942,20 +2942,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2019-01-16T21:53:39+00:00" + "time": "2019-08-20T14:07:54+00:00" }, { "name": "symfony/debug", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "527887c3858a2462b0137662c74837288b998ee3" + "reference": "afcdea44a2e399c1e4b52246ec8d54c715393ced" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/527887c3858a2462b0137662c74837288b998ee3", - "reference": "527887c3858a2462b0137662c74837288b998ee3", + "url": "https://api.github.com/repos/symfony/debug/zipball/afcdea44a2e399c1e4b52246ec8d54c715393ced", + "reference": "afcdea44a2e399c1e4b52246ec8d54c715393ced", "shasum": "" }, "require": { @@ -2998,20 +2998,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-07-23T11:21:36+00:00" + "time": "2019-08-20T14:27:59+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "212b020949331b6531250584531363844b34a94e" + "reference": "429d0a1451d4c9c4abe1959b2986b88794b9b7d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/212b020949331b6531250584531363844b34a94e", - "reference": "212b020949331b6531250584531363844b34a94e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/429d0a1451d4c9c4abe1959b2986b88794b9b7d2", + "reference": "429d0a1451d4c9c4abe1959b2986b88794b9b7d2", "shasum": "" }, "require": { @@ -3068,7 +3068,7 @@ ], "description": "Symfony EventDispatcher Component", "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", @@ -3130,16 +3130,16 @@ }, { "name": "symfony/filesystem", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "b9896d034463ad6fd2bf17e2bf9418caecd6313d" + "reference": "9abbb7ef96a51f4d7e69627bc6f63307994e4263" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b9896d034463ad6fd2bf17e2bf9418caecd6313d", - "reference": "b9896d034463ad6fd2bf17e2bf9418caecd6313d", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/9abbb7ef96a51f4d7e69627bc6f63307994e4263", + "reference": "9abbb7ef96a51f4d7e69627bc6f63307994e4263", "shasum": "" }, "require": { @@ -3176,20 +3176,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2019-06-23T08:51:25+00:00" + "time": "2019-08-20T14:07:54+00:00" }, { "name": "symfony/finder", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9638d41e3729459860bb96f6247ccb61faaa45f2" + "reference": "86c1c929f0a4b24812e1eb109262fc3372c8e9f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9638d41e3729459860bb96f6247ccb61faaa45f2", - "reference": "9638d41e3729459860bb96f6247ccb61faaa45f2", + "url": "https://api.github.com/repos/symfony/finder/zipball/86c1c929f0a4b24812e1eb109262fc3372c8e9f2", + "reference": "86c1c929f0a4b24812e1eb109262fc3372c8e9f2", "shasum": "" }, "require": { @@ -3225,20 +3225,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-06-28T13:16:30+00:00" + "time": "2019-08-14T12:26:46+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "8b778ee0c27731105fbf1535f51793ad1ae0ba2b" + "reference": "d804bea118ff340a12e22a79f9c7e7eb56b35adc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/8b778ee0c27731105fbf1535f51793ad1ae0ba2b", - "reference": "8b778ee0c27731105fbf1535f51793ad1ae0ba2b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d804bea118ff340a12e22a79f9c7e7eb56b35adc", + "reference": "d804bea118ff340a12e22a79f9c7e7eb56b35adc", "shasum": "" }, "require": { @@ -3280,20 +3280,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-07-23T11:21:36+00:00" + "time": "2019-08-26T08:55:16+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "a414548d236ddd8fa3df52367d583e82339c5e95" + "reference": "5e0fc71be03d52cd00c423061cfd300bd6f92a52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a414548d236ddd8fa3df52367d583e82339c5e95", - "reference": "a414548d236ddd8fa3df52367d583e82339c5e95", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/5e0fc71be03d52cd00c423061cfd300bd6f92a52", + "reference": "5e0fc71be03d52cd00c423061cfd300bd6f92a52", "shasum": "" }, "require": { @@ -3372,20 +3372,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2019-07-28T07:10:23+00:00" + "time": "2019-08-26T16:47:42+00:00" }, { "name": "symfony/mime", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "6b7148029b1dd5eda1502064f06d01357b7b2d8b" + "reference": "987a05df1c6ac259b34008b932551353f4f408df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/6b7148029b1dd5eda1502064f06d01357b7b2d8b", - "reference": "6b7148029b1dd5eda1502064f06d01357b7b2d8b", + "url": "https://api.github.com/repos/symfony/mime/zipball/987a05df1c6ac259b34008b932551353f4f408df", + "reference": "987a05df1c6ac259b34008b932551353f4f408df", "shasum": "" }, "require": { @@ -3394,7 +3394,7 @@ "symfony/polyfill-mbstring": "^1.0" }, "require-dev": { - "egulias/email-validator": "^2.0", + "egulias/email-validator": "^2.1.10", "symfony/dependency-injection": "~3.4|^4.1" }, "type": "library", @@ -3431,7 +3431,7 @@ "mime", "mime-type" ], - "time": "2019-07-19T16:21:19+00:00" + "time": "2019-08-22T08:16:11+00:00" }, { "name": "symfony/polyfill-ctype", @@ -3786,16 +3786,16 @@ }, { "name": "symfony/process", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "856d35814cf287480465bb7a6c413bb7f5f5e69c" + "reference": "e89969c00d762349f078db1128506f7f3dcc0d4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/856d35814cf287480465bb7a6c413bb7f5f5e69c", - "reference": "856d35814cf287480465bb7a6c413bb7f5f5e69c", + "url": "https://api.github.com/repos/symfony/process/zipball/e89969c00d762349f078db1128506f7f3dcc0d4a", + "reference": "e89969c00d762349f078db1128506f7f3dcc0d4a", "shasum": "" }, "require": { @@ -3831,20 +3831,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-05-30T16:10:05+00:00" + "time": "2019-08-26T08:26:39+00:00" }, { "name": "symfony/routing", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "a88c47a5861549f5dc1197660818084c3b67d773" + "reference": "ff1049f6232dc5b6023b1ff1c6de56f82bcd264f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/a88c47a5861549f5dc1197660818084c3b67d773", - "reference": "a88c47a5861549f5dc1197660818084c3b67d773", + "url": "https://api.github.com/repos/symfony/routing/zipball/ff1049f6232dc5b6023b1ff1c6de56f82bcd264f", + "reference": "ff1049f6232dc5b6023b1ff1c6de56f82bcd264f", "shasum": "" }, "require": { @@ -3907,20 +3907,20 @@ "uri", "url" ], - "time": "2019-07-23T14:43:56+00:00" + "time": "2019-08-26T08:26:39+00:00" }, { "name": "symfony/service-contracts", - "version": "v1.1.5", + "version": "v1.1.6", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d" + "reference": "ea7263d6b6d5f798b56a45a5b8d686725f2719a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d", - "reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ea7263d6b6d5f798b56a45a5b8d686725f2719a3", + "reference": "ea7263d6b6d5f798b56a45a5b8d686725f2719a3", "shasum": "" }, "require": { @@ -3965,26 +3965,26 @@ "interoperability", "standards" ], - "time": "2019-06-13T11:15:36+00:00" + "time": "2019-08-20T14:44:19+00:00" }, { "name": "symfony/translation", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "4e3e39cc485304f807622bdc64938e4633396406" + "reference": "28498169dd334095fa981827992f3a24d50fed0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/4e3e39cc485304f807622bdc64938e4633396406", - "reference": "4e3e39cc485304f807622bdc64938e4633396406", + "url": "https://api.github.com/repos/symfony/translation/zipball/28498169dd334095fa981827992f3a24d50fed0f", + "reference": "28498169dd334095fa981827992f3a24d50fed0f", "shasum": "" }, "require": { "php": "^7.1.3", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^1.1.2" + "symfony/translation-contracts": "^1.1.6" }, "conflict": { "symfony/config": "<3.4", @@ -4041,20 +4041,20 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2019-07-18T10:34:59+00:00" + "time": "2019-08-26T08:55:16+00:00" }, { "name": "symfony/translation-contracts", - "version": "v1.1.5", + "version": "v1.1.6", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "cb4b18ad7b92a26e83b65dde940fab78339e6f3c" + "reference": "325b17c24f3ee23cbecfa63ba809c6d89b5fa04a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/cb4b18ad7b92a26e83b65dde940fab78339e6f3c", - "reference": "cb4b18ad7b92a26e83b65dde940fab78339e6f3c", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/325b17c24f3ee23cbecfa63ba809c6d89b5fa04a", + "reference": "325b17c24f3ee23cbecfa63ba809c6d89b5fa04a", "shasum": "" }, "require": { @@ -4098,20 +4098,20 @@ "interoperability", "standards" ], - "time": "2019-06-13T11:15:36+00:00" + "time": "2019-08-02T12:15:04+00:00" }, { "name": "symfony/var-dumper", - "version": "v4.3.3", + "version": "v4.3.4", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "e4110b992d2cbe198d7d3b244d079c1c58761d07" + "reference": "641043e0f3e615990a0f29479f9c117e8a6698c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e4110b992d2cbe198d7d3b244d079c1c58761d07", - "reference": "e4110b992d2cbe198d7d3b244d079c1c58761d07", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/641043e0f3e615990a0f29479f9c117e8a6698c6", + "reference": "641043e0f3e615990a0f29479f9c117e8a6698c6", "shasum": "" }, "require": { @@ -4174,7 +4174,7 @@ "debug", "dump" ], - "time": "2019-07-27T06:42:46+00:00" + "time": "2019-08-26T08:26:39+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -4215,8 +4215,8 @@ "authors": [ { "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.", @@ -4443,8 +4443,8 @@ "authors": [ { "name": "Filipe Dobreira", - "role": "Developer", - "homepage": "https://github.com/filp" + "homepage": "https://github.com/filp", + "role": "Developer" } ], "description": "php error handling for cool kids", @@ -4819,18 +4819,18 @@ "authors": [ { "name": "Arne Blankerts", - "role": "Developer", - "email": "arne@blankerts.de" + "email": "arne@blankerts.de", + "role": "Developer" }, { "name": "Sebastian Heuer", - "role": "Developer", - "email": "sebastian@phpeople.de" + "email": "sebastian@phpeople.de", + "role": "Developer" }, { "name": "Sebastian Bergmann", - "role": "Developer", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "Developer" } ], "description": "Library for handling version information and constraints", @@ -5101,8 +5101,8 @@ "authors": [ { "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.", @@ -5152,8 +5152,8 @@ "authors": [ { "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.", @@ -5194,8 +5194,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "role": "lead", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], "description": "Simple template engine.", @@ -5243,8 +5243,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "role": "lead", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], "description": "Utility class for timing", @@ -5305,16 +5305,16 @@ }, { "name": "phpunit/phpunit", - "version": "7.5.14", + "version": "7.5.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "2834789aeb9ac182ad69bfdf9ae91856a59945ff" + "reference": "d79c053d972856b8b941bb233e39dc521a5093f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2834789aeb9ac182ad69bfdf9ae91856a59945ff", - "reference": "2834789aeb9ac182ad69bfdf9ae91856a59945ff", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d79c053d972856b8b941bb233e39dc521a5093f0", + "reference": "d79c053d972856b8b941bb233e39dc521a5093f0", "shasum": "" }, "require": { @@ -5374,8 +5374,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "role": "lead", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], "description": "The PHP Unit Testing framework.", @@ -5385,7 +5385,7 @@ "testing", "xunit" ], - "time": "2019-07-15T06:24:08+00:00" + "time": "2019-08-21T07:05:16+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -5945,8 +5945,8 @@ "authors": [ { "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", @@ -5995,16 +5995,16 @@ }, { "name": "webmozart/assert", - "version": "1.4.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", + "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", "shasum": "" }, "require": { @@ -6012,8 +6012,7 @@ "symfony/polyfill-ctype": "^1.8" }, "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" + "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, "type": "library", "extra": { @@ -6042,7 +6041,7 @@ "check", "validate" ], - "time": "2018-12-25T11:19:39+00:00" + "time": "2019-08-24T08:43:50+00:00" } ], "aliases": [], diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index 6f8f739b..bbb8c931 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -19,7 +19,7 @@ class CreateUsersTable extends Migration $table->string('lastname'); $table->string('email')->unique(); $table->string('password'); - $table->string('rank')->default(1); + $table->string('rank_id')->default(1); $table->string('adress')->default('unknown'); $table->string('telephone')->default('unknown'); $table->string('age'); diff --git a/database/migrations/2018_08_21_094646_create_ranks_table.php b/database/migrations/2018_08_21_094646_create_ranks_table.php index 69bea7da..3d81f0c0 100644 --- a/database/migrations/2018_08_21_094646_create_ranks_table.php +++ b/database/migrations/2018_08_21_094646_create_ranks_table.php @@ -15,23 +15,10 @@ class CreateRanksTable extends Migration { Schema::create('ranks', function (Blueprint $table) { $table->increments('id'); - $table->string('name'); + $table->string('name'); + $table->text('desc'); $table->text('acces_level'); - $table->boolean('schedule_see'); - $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->text('permissions'); $table->timestamps(); }); } diff --git a/database/seeds/RanksTableSeeder.php b/database/seeds/RanksTableSeeder.php index e5ca8a9c..170727f4 100644 --- a/database/seeds/RanksTableSeeder.php +++ b/database/seeds/RanksTableSeeder.php @@ -15,174 +15,9 @@ class RanksTableSeeder extends Seeder [ 'name' => "SuperAdmin", '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 - ], - [ - '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 - ], + 'desc' => 'Compte SuperAdmin donne toutes les permissions ne peux être modifié', + 'permissions' => \App\Permission::allToString(1) + ] ]); } } diff --git a/database/seeds/UsersTableSeeder.php b/database/seeds/UsersTableSeeder.php index e5f20ab1..6e303df5 100644 --- a/database/seeds/UsersTableSeeder.php +++ b/database/seeds/UsersTableSeeder.php @@ -17,7 +17,7 @@ class UsersTableSeeder extends Seeder 'lastname' => 'Autre', 'email' => 'visiteur@exvps.ca', 'password' => bcrypt('f329er8kl2jHJGHdEj12567'), - 'rank' => '1', + 'rank_id' => '1', 'adress' => 'Inconnu', 'age' => '99', 'avatar' => '3', @@ -30,7 +30,7 @@ class UsersTableSeeder extends Seeder 'lastname' => 'Administrateur', 'email' => 'admin@exvps.ca', 'password' => bcrypt('SuperAdmin'), - 'rank' => '1', + 'rank_id' => '1', 'adress' => 'Inconnu', 'age' => '99', 'avatar' => '3', diff --git a/public/js/permissions.js b/public/js/permissions.js new file mode 100644 index 00000000..35ca3962 --- /dev/null +++ b/public/js/permissions.js @@ -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; + } +} diff --git a/resources/assets/js/permissions.js b/resources/assets/js/permissions.js new file mode 100644 index 00000000..6f33d8cd --- /dev/null +++ b/resources/assets/js/permissions.js @@ -0,0 +1,8 @@ +function switchPermissionSwitch(rank,valeur) +{ + switch (valeur) { + case 'close': + $('#'+rank+'-close').addClass('btn-danger'); + $('#'+rank+'-close').removeClass('btn-danger'); + } +} diff --git a/resources/views/admin/article/index.blade.php b/resources/views/admin/article/index.blade.php index cc771dab..7ea11e73 100644 --- a/resources/views/admin/article/index.blade.php +++ b/resources/views/admin/article/index.blade.php @@ -24,8 +24,12 @@
{{date('Y-m-d',strtotime($course->event->date_begin))}}
+Période {{$course->periode}}, Niveau {{$course->level}}
+| {!! $item->desc !!} |
+ @if(\Auth::user()->p('inventory_edit') == 1)
Modifier
-
+ @endif
+ @if(\Auth::user()->p('inventory_delete') == 1)
+
+ @endif
|
diff --git a/resources/views/admin/log/display.blade.php b/resources/views/admin/log/display.blade.php
index 66b649f7..b82e7849 100644
--- a/resources/views/admin/log/display.blade.php
+++ b/resources/views/admin/log/display.blade.php
@@ -8,8 +8,6 @@
| {{$item->created_at}} | {{$item->type}} | -Success | +{{$item->result}} | {{\App\User::find($item->user_id)->fullname()}} | {{$item->event}} |
|---|
| Niveau | - @for ($p = 1; $p <= \App\Config::getData('admin_periode_nb'); $p++) -- Période {{$p}} {{\App\Config::all()->where('name','admin_periode_begin')->first()->data[$p]}} à {{\App\Config::all()->where('name','admin_periode_end')->first()->data[$p]}} - | - @endfor - - - @for ($l = 1; $l <= \App\Config::getData('admin_level_in_schedule_nb'); $l++) +
|---|
| - Niveau {{$l}} - | +Niveau | @for ($p = 1; $p <= \App\Config::getData('admin_periode_nb'); $p++) ++ Période {{$p}} {{\App\Config::all()->where('name','admin_periode_begin')->first()->data[$p]}} à {{\App\Config::all()->where('name','admin_periode_end')->first()->data[$p]}} + | + @endfor +|||||||
|---|---|---|---|---|---|---|---|---|---|
| - @foreach ($event->courses as $course) - @if ($course->periode == $p && $course->level == $l) - {{$course->name}} - - @if(\App\User::find($course->user_id)) - {{\App\User::find($course->user_id)->fullname()}} - @else - Utilisateur Inconnu + Niveau {{$l}} + | + @for ($p = 1; $p <= \App\Config::getData('admin_periode_nb'); $p++) +
+ @foreach($event->courses as $course)
+ @if($course->periode == $p && $course->level == $l)
+
|
2019-09-13
++ Nouveauté +
+ Bug +
2019-09-11
++ Nouveauté +
+ Bug +