From 8158f8a8aae6c08b4b41189d6856f6d73221115f Mon Sep 17 00:00:00 2001 From: Mathieu Lagace Date: Fri, 31 Jul 2020 17:29:47 -0400 Subject: [PATCH] add first login logic --- app/Course.php | 6 +- app/Http/Controllers/AdminController.php | 38 ++- app/Http/Controllers/EventController.php | 6 +- app/Http/Controllers/ScheduleController.php | 5 +- app/Http/Controllers/UserController.php | 12 +- app/Http/Kernel.php | 1 + app/Http/Middleware/FirstLogin.php | 28 ++ app/Providers/TelescopeServiceProvider.php | 2 +- config/telescope.php | 5 +- .../2014_10_12_000000_create_users_table.php | 5 +- database/seeds/UsersTableSeeder.php | 4 +- public/css/custom.css | 14 + public/js/plugins/parsley-extra.min.js | 55 +++ public/js/plugins/parsley.min.js | 2 + resources/custom.css | 14 + resources/views/admin/update.blade.php | 13 +- resources/views/admin/user/add.blade.php | 246 +++++++------- resources/views/admin/user/edit.blade.php | 163 ++++----- .../views/admin/user/profil/setup.blade.php | 103 ++++++ .../views/layouts/admin/scripts.blade.php | 3 + routes/breadcrumbs.php | 8 +- routes/web.php | 315 +++++++++--------- 22 files changed, 655 insertions(+), 393 deletions(-) create mode 100644 app/Http/Middleware/FirstLogin.php create mode 100644 public/js/plugins/parsley-extra.min.js create mode 100644 public/js/plugins/parsley.min.js create mode 100644 resources/views/admin/user/profil/setup.blade.php diff --git a/app/Course.php b/app/Course.php index 6f5c241f..9b5ed857 100644 --- a/app/Course.php +++ b/app/Course.php @@ -62,7 +62,11 @@ class Course extends Model if (\App\User::find($this->user_id)) { return \App\User::find($this->user_id)->fullname(); } else { - return $this->user_id; + if (is_numeric($this->user_id)) { + return 'Utilisateur inconnu'; + } else { + return $this->user_id; + } } } diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index e7ad000f..6f051985 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -2,8 +2,11 @@ namespace App\Http\Controllers; +use Illuminate\Contracts\Foundation\Application; +use Illuminate\Contracts\View\Factory; use Illuminate\Http\Request; use \App\Log; +use Illuminate\View\View; class AdminController extends Controller { @@ -20,7 +23,7 @@ class AdminController extends Controller /** * Show the application dashboard. * - * @return \Illuminate\Http\Response + * @return Application|Factory|View */ public function index() { @@ -29,6 +32,39 @@ class AdminController extends Controller return view('admin.dashboard',['futureEvent' => \App\Event::future()->take(3),'userClasse' => \Auth::user()->futureCourses()->forPage(1,6)]); } + public function setup() + { + if (\Auth::user()->use_default_psw == true) + { + return view('admin.user.profil.setup'); + } + return redirect('/admin'); + } + + public function saveSetup() + { + $user = \Auth::user(); + $user->firstname = \request('firstname'); + $user->lastname = \request('lastname'); + $user->password = bcrypt(request('psw')); + + if (\request('address') != null) + { + $user->adress = \request('address'); + } + if (\request('telephone') != null) + { + $user->telephone = \request('telephone'); + } + if (\request('sexe') != null) + { + $user->sexe = \request('sexe'); + } + $user->use_default_psw = false; + $user->save(); + return redirect('/admin'); + } + public function update() { clog('navigate','success','consulte les notes de mise à jours'); diff --git a/app/Http/Controllers/EventController.php b/app/Http/Controllers/EventController.php index 801ccf98..6bf5fb62 100644 --- a/app/Http/Controllers/EventController.php +++ b/app/Http/Controllers/EventController.php @@ -147,7 +147,11 @@ class EventController extends Controller } $course->user_id = $instructor; - $course->location = request('location_n'.$l.'_p'.$p); + if (request('location_n'.$l.'_p'.$p) != null) { + $course->location = request('location_n'.$l.'_p'.$p); + } else { + $course->location = ""; + } $course->periode = $p; $course->level = $l; diff --git a/app/Http/Controllers/ScheduleController.php b/app/Http/Controllers/ScheduleController.php index 73cb6e0e..5722d60c 100644 --- a/app/Http/Controllers/ScheduleController.php +++ b/app/Http/Controllers/ScheduleController.php @@ -216,7 +216,10 @@ class ScheduleController extends Controller public function delete($id) { $event = \App\Event::find($id); - + foreach ($event->courses as $course) + { + $course->delete(); + } $event->delete(); } } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 4a85966f..d020936b 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -49,13 +49,13 @@ class UserController extends Controller $user->email = request('email'); if (request('adresse') == null) { - $user->adress = "Inconnu"; + $user->adress = ""; } else { $user->adress = request('adresse'); } if (request('telephone') == null) { - $user->telephone = "Inconnu"; + $user->telephone = ""; } else { $user->telephone = request('telephone'); } @@ -63,7 +63,7 @@ class UserController extends Controller $user->sexe = request('sexe'); if (request('age') == null) { - $user->age = "Inconnu"; + $user->age = ""; } else { $user->age = request('age'); } @@ -122,13 +122,13 @@ class UserController extends Controller $user->email = request('email'); if (request('adresse') == null) { - $user->adress = "Inconnu"; + $user->adress = ""; } else { $user->adress = request('adresse'); } if (request('telephone') == null) { - $user->telephone = "Inconnu"; + $user->telephone = ""; } else { $user->telephone = request('telephone'); } @@ -136,7 +136,7 @@ class UserController extends Controller $user->sexe = request('sexe'); if (request('age') == null) { - $user->age = "Inconnu"; + $user->age = ""; } else { $user->age = request('age'); } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 27361b03..ebb97580 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -64,5 +64,6 @@ class Kernel extends HttpKernel 'perm' => \App\Http\Middleware\CheckPerm::class, 'fileperm' => \App\Http\Middleware\CheckFilePerm::class, 'courseperm' => \App\Http\Middleware\CheckCoursePerm::class, + 'firstlogin' => \App\Http\Middleware\FirstLogin::class ]; } diff --git a/app/Http/Middleware/FirstLogin.php b/app/Http/Middleware/FirstLogin.php new file mode 100644 index 00000000..65b1a5db --- /dev/null +++ b/app/Http/Middleware/FirstLogin.php @@ -0,0 +1,28 @@ +isMethod('get')) + { + if (\Auth::user()->use_default_psw == true) + { + return redirect('/admin/setup'); + } + } + return $next($request); + } +} diff --git a/app/Providers/TelescopeServiceProvider.php b/app/Providers/TelescopeServiceProvider.php index a9ddad22..e35852b6 100644 --- a/app/Providers/TelescopeServiceProvider.php +++ b/app/Providers/TelescopeServiceProvider.php @@ -64,7 +64,7 @@ class TelescopeServiceProvider extends TelescopeApplicationServiceProvider { Gate::define('viewTelescope', function ($user) { return in_array($user->email, [ - // + 'admin@exvps.ca' ]); }); } diff --git a/config/telescope.php b/config/telescope.php index 1fed214a..dd854eb2 100644 --- a/config/telescope.php +++ b/config/telescope.php @@ -29,7 +29,7 @@ return [ | */ - 'path' => env('TELESCOPE_PATH', 'telescope'), + 'path' => env('TELESCOPE_PATH', 'admin/telescope'), /* |-------------------------------------------------------------------------- @@ -62,7 +62,7 @@ return [ | */ - 'enabled' => env('TELESCOPE_ENABLED', true), + 'enabled' => env('TELESCOPE_ENABLED', false), /* |-------------------------------------------------------------------------- @@ -77,6 +77,7 @@ return [ 'middleware' => [ 'web', + 'auth', Authorize::class, ], 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 6678198d..94c91536 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -20,12 +20,13 @@ class CreateUsersTable extends Migration $table->string('email')->unique(); $table->string('password'); $table->string('rank_id')->default(1); - $table->string('adress')->default('unknown'); - $table->string('telephone')->default('unknown'); + $table->string('adress')->default(''); + $table->string('telephone')->default(''); $table->string('age'); $table->string('avatar')->default('1'); $table->string('sexe'); $table->string('job_id')->default(6); + $table->boolean('use_default_psw')->default(true); $table->string('api_token', 60)->unique()->default(str_shuffle(str_random(60))); $table->rememberToken(); $table->timestamps(); diff --git a/database/seeds/UsersTableSeeder.php b/database/seeds/UsersTableSeeder.php index 6603e464..f1049c69 100644 --- a/database/seeds/UsersTableSeeder.php +++ b/database/seeds/UsersTableSeeder.php @@ -18,7 +18,7 @@ class UsersTableSeeder extends Seeder 'email' => 'visiteur@exvps.ca', 'password' => bcrypt('f329er8kl2jHJGHdEj12567'), 'rank_id' => '1', - 'adress' => 'Inconnu', + 'adress' => '', 'age' => '99', 'avatar' => '3', 'sexe' => 'm', @@ -31,7 +31,7 @@ class UsersTableSeeder extends Seeder 'email' => 'admin@exvps.ca', 'password' => bcrypt('SuperAdmin'), 'rank_id' => '1', - 'adress' => 'Inconnu', + 'adress' => '', 'age' => '99', 'avatar' => '3', 'sexe' => 'm', diff --git a/public/css/custom.css b/public/css/custom.css index 87b1a4c7..a648f115 100644 --- a/public/css/custom.css +++ b/public/css/custom.css @@ -1893,4 +1893,18 @@ tfoot > tr { .overflow-auto { overflow: auto; +} + +.parsley-errors-list { + list-style: none; + padding: 0px; + color: #f44336; +} + +.form-control { + padding-top: 15px; +} + +.bootstrap-select { + margin-top: -12px; } \ No newline at end of file diff --git a/public/js/plugins/parsley-extra.min.js b/public/js/plugins/parsley-extra.min.js new file mode 100644 index 00000000..e0107f54 --- /dev/null +++ b/public/js/plugins/parsley-extra.min.js @@ -0,0 +1,55 @@ +// Validation errors messages for Parsley +// Load this after Parsley + +Parsley.addMessages('fr', { + defaultMessage: "Cette valeur semble non valide.", + type: { + email: "Cette valeur n'est pas une adresse email valide.", + url: "Cette valeur n'est pas une URL valide.", + number: "Cette valeur doit être un nombre.", + integer: "Cette valeur doit être un entier.", + digits: "Cette valeur doit être numérique.", + alphanum: "Cette valeur doit être alphanumérique." + }, + notblank: "Cette valeur ne peut pas être vide.", + required: "Ce champ est requis.", + pattern: "Cette valeur semble non valide.", + min: "Cette valeur ne doit pas être inférieure à %s.", + max: "Cette valeur ne doit pas excéder %s.", + range: "Cette valeur doit être comprise entre %s et %s.", + minlength: "Cette chaîne est trop courte. Elle doit avoir au minimum %s caractères.", + maxlength: "Cette chaîne est trop longue. Elle doit avoir au maximum %s caractères.", + length: "Cette valeur doit contenir entre %s et %s caractères.", + mincheck: "Vous devez sélectionner au moins %s choix.", + maxcheck: "Vous devez sélectionner %s choix maximum.", + check: "Vous devez sélectionner entre %s et %s choix.", + equalto: "Cette valeur devrait être identique." +}); + +Parsley.setLocale('fr'); + +window.Parsley + .addValidator('password', { + requirementType: 'boolean', + validateString: function(value, requirement) { + console.log(/^(?=.*[\d])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*])[\w!@#$%^&*]{8,}$/.test(value)); + return /^(?=.*[\d])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*])[\w!@#$%^&*]{8,}$/.test(value); + }, + messages: { + fr: 'Le mot de passe doit contenir au moins 8 caractères, une lettre majuscule, une lettre minuscule, un chiffre et un caractères spécial' + } + }); + +window.Parsley.on('field:error', function (fieldInstance) { + var messages = ParsleyUI.getErrorsMessages(fieldInstance); + var errorMsg = messages.join(';'); + fieldInstance.$element.parent().addClass('has-danger'); + fieldInstance.$element.parent().removeClass('has-success'); + +}); +window.Parsley.on('field:success', function (fieldInstance) { + if (fieldInstance.$element.val() != "") { + fieldInstance.$element.parent().removeClass('has-danger'); + fieldInstance.$element.parent().addClass('has-success'); + } +}); \ No newline at end of file diff --git a/public/js/plugins/parsley.min.js b/public/js/plugins/parsley.min.js new file mode 100644 index 00000000..09a24b30 --- /dev/null +++ b/public/js/plugins/parsley.min.js @@ -0,0 +1,2 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):(t=t||self).parsley=e(t.jQuery)}(this,function(h){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(){return(l=Object.assign||function(t){for(var e=1;e',errorTemplate:"
  • "};r.prototype={asyncSupport:!0,_pipeAccordingToValidationResult:function(){function t(){var t=h.Deferred();return!0!==e.validationResult&&t.reject(),t.resolve().promise()}var e=this;return[t,t]},actualizeOptions:function(){return d.attr(this.element,this.options.namespace,this.domOptions),this.parent&&this.parent.actualizeOptions&&this.parent.actualizeOptions(),this},_resetOptions:function(t){for(var e in this.domOptions=d.objectCreate(this.parent.options),this.options=d.objectCreate(this.domOptions),t)t.hasOwnProperty(e)&&(this.options[e]=t[e]);this.actualizeOptions()},_listeners:null,on:function(t,e){return this._listeners=this._listeners||{},(this._listeners[t]=this._listeners[t]||[]).push(e),this},subscribe:function(t,e){h.listenTo(this,t.toLowerCase(),e)},off:function(t,e){var i=this._listeners&&this._listeners[t];if(i)if(e)for(var r=i.length;r--;)i[r]===e&&i.splice(r,1);else delete this._listeners[t];return this},unsubscribe:function(t){h.unsubscribeTo(this,t.toLowerCase())},trigger:function(t,e,i){e=e||this;var r,n=this._listeners&&this._listeners[t];if(n)for(var s=n.length;s--;)if(!1===(r=n[s].call(e,e,i)))return r;return!this.parent||this.parent.trigger(t,e,i)},asyncIsValid:function(t,e){return d.warnOnce("asyncIsValid is deprecated; please use whenValid instead"),this.whenValid({group:t,force:e})},_findRelated:function(){return this.options.multiple?h(this.parent.element.querySelectorAll("[".concat(this.options.namespace,'multiple="').concat(this.options.multiple,'"]'))):this.$element}};function c(t){h.extend(!0,this,t)}c.prototype={validate:function(t,e){if(this.fn)return 3d)return!1;var h=function(t){return Math.round(t*Math.pow(10,d))};if((h(u)-h(o))%h(s)!=0)return!1}return!0},requirementType:{"":"string",step:"string",base:"number"},priority:256},pattern:{validateString:function(t,e){return!t||e.test(t)},requirementType:"regexp",priority:64},minlength:{validateString:function(t,e){return!t||t.length>=e},requirementType:"integer",priority:30},maxlength:{validateString:function(t,e){return t.length<=e},requirementType:"integer",priority:30},length:{validateString:function(t,e,i){return!t||t.length>=e&&t.length<=i},requirementType:["integer","integer"],priority:30},mincheck:{validateMultiple:function(t,e){return t.length>=e},requirementType:"integer",priority:30},maxcheck:{validateMultiple:function(t,e){return t.length<=e},requirementType:"integer",priority:30},check:{validateMultiple:function(t,e,i){return t.length>=e&&t.length<=i},requirementType:["integer","integer"],priority:30},min:g(function(t,e){return e<=t}),max:g(function(t,e){return t<=e}),range:g(function(t,e,i){return e<=t&&t<=i}),equalto:{validateString:function(t,e){if(!t)return!0;var i=h(e);return i.length?t===i.val():t===e},priority:256},euvatin:{validateString:function(t){if(!t)return!0;return/^[A-Z][A-Z][A-Za-z0-9 -]{2,}$/.test(t)},priority:30}}};var v={};v.Form={_actualizeTriggers:function(){var e=this;this.$element.on("submit.Parsley",function(t){e.onSubmitValidate(t)}),this.$element.on("click.Parsley",d._SubmitSelector,function(t){e.onSubmitButton(t)}),!1!==this.options.uiEnabled&&this.element.setAttribute("novalidate","")},focus:function(){if(!(this._focusedField=null)===this.validationResult||"none"===this.options.focus)return null;for(var t=0;t').appendTo(this.$element)),e.attr({name:t.getAttribute("name"),value:t.getAttribute("value")})}this.$element.trigger(l(h.Event("submit"),{parsley:!0}))}},validate:function(t){if(1<=arguments.length&&!h.isPlainObject(t)){d.warnOnce("Calling validate on a parsley form without passing arguments as an object is deprecated.");var e=Array.prototype.slice.call(arguments);t={group:e[0],force:e[1],event:e[2]}}return _[this.whenValidate(t).state()]},whenValidate:function(t){var e,i=this,r=0 tr { .overflow-auto { overflow: auto; +} + +.parsley-errors-list { + list-style: none; + padding: 0px; + color: #f44336; +} + +.form-control { + padding-top: 15px; +} + +.bootstrap-select { + margin-top: -12px; } \ No newline at end of file diff --git a/resources/views/admin/update.blade.php b/resources/views/admin/update.blade.php index 688b9a3b..12f73261 100644 --- a/resources/views/admin/update.blade.php +++ b/resources/views/admin/update.blade.php @@ -16,6 +16,9 @@
    +

    @@ -41,16 +44,6 @@

    -
  • -
    -
    - -
    -
    - Ajout d'un lien avec Google Drive -
    -
    -
  • diff --git a/resources/views/admin/user/add.blade.php b/resources/views/admin/user/add.blade.php index e248c72d..db266d80 100644 --- a/resources/views/admin/user/add.blade.php +++ b/resources/views/admin/user/add.blade.php @@ -1,140 +1,144 @@ @extends('layouts.admin.main') @section('content') -
    -
    -
    - Ajouter un utilisateur - -
    -
    -
    - @csrf -
    -
    -
    - - - Requis -
    -
    -
    -
    - - - Requis -
    -
    -
    - -
    -
    -
    - - - Requis +
    +
    +
    + Ajouter un utilisateur + +
    +
    + + @csrf +
    +
    +
    + + +
    +
    +
    +
    + + +
    -
    -
    - - - Requis + +
    +
    +
    + + +
    +
    +
    +
    + + +
    -
    -
    -
    -
    - - - +
    +
    +
    + + + +
    +
    +
    +
    + + +
    -
    -
    - - - Si vous souhaiter recevoir des notifications par SMS +
    +
    +
    + + +
    +
    +
    +
    + + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    -
    -
    -
    -
    - - - Requis + +
    +
    +
    + + +
    +
    +
    +
    + + +
    -
    -
    - - - -
    -
    -
    -
    - - - Requis -
    -
    -
    -
    - - - Requis -
    -
    -
    -
    - -
    -
    -
    - - - Requis -
    -
    -
    -
    - - - Requis -
    -
    -
    - - + + +
    -
    -@endsection - -@section('breadcrumb') - Utilisateur / Ajouter @endsection @section('custom_scripts') - + @endsection diff --git a/resources/views/admin/user/edit.blade.php b/resources/views/admin/user/edit.blade.php index bb153d63..31ee2fca 100644 --- a/resources/views/admin/user/edit.blade.php +++ b/resources/views/admin/user/edit.blade.php @@ -14,125 +14,112 @@
    - firstname}}> - Requis -
    + +
    - lastname}}> - Requis -
    + +
    -
    - email}}> - Requis +
    - email}}> - Requis +
    - - adress}}> - + + +
    - - telephone}}> - Si vous souhaiter recevoir des notifications par SMS + + +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + + + +
    +
    +
    +
    + + +
    +
    +
    +
    + +
    -
    -
    -
    - - - Requis -
    -
    -
    -
    - - age}}> - -
    -
    -
    -
    - - - Requis -
    -
    -
    -
    - - - Requis -
    -
    -
    -
    -
    - - - Requis + +
    - - - Requis + +
    @@ -143,10 +130,8 @@
    @endsection -@section('breadcrumb') - Utilisateur / Modifier -@endsection - @section('custom_scripts') - + @endsection diff --git a/resources/views/admin/user/profil/setup.blade.php b/resources/views/admin/user/profil/setup.blade.php new file mode 100644 index 00000000..ac0ba86b --- /dev/null +++ b/resources/views/admin/user/profil/setup.blade.php @@ -0,0 +1,103 @@ +@extends('layouts.admin.main') + +@section('content') +
    + +
    +
    +
    +
    +

    + Bienvenue {{ Auth::user()->fullname() }}, +

    +
    Avant de pouvoir continer vous devez répondre a quelques + questions
    +
    +
    +
    Renseignement personnel
    + @csrf +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    Sécurité
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    + * Champ requis +
    +
    +
    + +
    +
    +
    +
    +@endsection + +@section('breadcrumb') + Dashboard +@endsection + +@section('scripts') + +@endsection diff --git a/resources/views/layouts/admin/scripts.blade.php b/resources/views/layouts/admin/scripts.blade.php index ef95422a..3c346539 100644 --- a/resources/views/layouts/admin/scripts.blade.php +++ b/resources/views/layouts/admin/scripts.blade.php @@ -29,6 +29,9 @@ + + + diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 3451aa8c..a97a4334 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -13,6 +13,12 @@ Breadcrumbs::for('admin.dashboard', function ($trail) { $trail->push('Dashboard', route('admin.dashboard')); }); +// Admin > Setup +Breadcrumbs::for('admin.setup', function ($trail) { + $trail->parent('admin.dashboard'); + $trail->push('Configuration initiale', route('admin.setup')); +}); + // Admin > Update Breadcrumbs::for('admin.update', function ($trail) { $trail->parent('admin.dashboard'); @@ -64,7 +70,7 @@ Breadcrumbs::for('admin.user', function ($trail, $id) { // Admin > User > Add Breadcrumbs::for('admin.user.add', function ($trail) { - $trail->parent('admin.user'); + $trail->parent('admin.users'); $trail->push('Ajouter un utilisateur', route('admin.user.add')); }); diff --git a/routes/web.php b/routes/web.php index 4509141b..9e19820b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,7 +1,9 @@ name('logout'); -Route::get('/ocom/create','OCOMController@updateOCOMDB'); - +Route::get('/ocom/create', 'OCOMController@updateOCOMDB'); /** Public Route */ @@ -29,187 +30,191 @@ Route::get('/activity/{id}', 'ComplementaryActivityController@show'); Route::get('/picture/{id}', 'PictureController@show'); Route::get('/pictures', 'PictureController@index'); -Route::get('/file/get','GoogleDriveController@getFile')->middleware('fileperm:file,r'); -@ -Route::middleware(['auth'])->name('admin.')->group(function () { +Route::get('/file/get', 'GoogleDriveController@getFile')->middleware('fileperm:file,r'); + +/** Setup */ +Route::get('/admin/setup', 'AdminController@setup')->middleware('auth')->name('admin.setup'); +Route::post('/admin/setup', 'AdminController@saveSetup')->middleware('auth'); + +Route::middleware(['auth', 'firstlogin'])->name('admin.')->group(function () { /* Espace Administration Route */ - /** Dashboard & General */ - Route::get('/admin', 'AdminController@index')->name('dashboard'); - Route::get('/admin/update', 'AdminController@update')->name('update'); - Route::get('/admin/status','AdminController@status')->name('status'); + /** Dashboard & General */ + Route::get('/admin', 'AdminController@index')->name('dashboard'); + Route::get('/admin/update', 'AdminController@update')->name('update'); + Route::get('/admin/status', 'AdminController@status')->name('status'); - /** Schedule */ - Route::get('/admin/schedule', 'CalendarController@index')->middleware('perm:schedule_see')->name('schedule'); - Route::get('/admin/schedule/pdf/event/{id}','ScheduleController@printtopdf')->middleware('perm:schedule_see')->name('schedule.pdf'); - Route::get('/admin/schedule/add/{date}','ScheduleController@create')->middleware('perm:schedule_add')->name('schedule.add'); - Route::get('/admin/schedule/edit/{id}','EventController@edit')->middleware('perm:schedule_edit')->name('schedule.edit'); - Route::post('/admin/schedule/event/add','EventController@Store')->middleware('perm:schedule_add'); - Route::post('/admin/schedule/event/edit/{id}','EventController@update')->middleware('perm:schedule_edit'); - /** Statistique */ - Route::get('/admin/stats/log' , 'LogController@index')->middleware('perm:stats_see')->name('stats.log'); - Route::get('/admin/stats/instruction' , 'StatsController@instruction')->middleware('perm:stats_see')->name('stats.instruction'); + /** Schedule */ + Route::get('/admin/schedule', 'CalendarController@index')->middleware('perm:schedule_see')->name('schedule'); + Route::get('/admin/schedule/pdf/event/{id}', 'ScheduleController@printtopdf')->middleware('perm:schedule_see')->name('schedule.pdf'); + Route::get('/admin/schedule/add/{date}', 'ScheduleController@create')->middleware('perm:schedule_add')->name('schedule.add'); + Route::get('/admin/schedule/edit/{id}', 'EventController@edit')->middleware('perm:schedule_edit')->name('schedule.edit'); + Route::post('/admin/schedule/event/add', 'EventController@Store')->middleware('perm:schedule_add'); + Route::post('/admin/schedule/event/edit/{id}', 'EventController@update')->middleware('perm:schedule_edit'); - /** Message */ - Route::get('/admin/message' , 'MessageController@index')->middleware('perm:msg_see')->name('message'); - Route::get('/admin/message/add' , 'MessageController@create')->middleware('perm:msg_add')->name('message.add'); - Route::post('/admin/message/add' , 'MessageController@store')->middleware('perm:msg_add'); - Route::get('/admin/message/{id}', ['uses' =>'MessageController@show'])->middleware('perm:msg_see')->name('message.show'); + /** Statistique */ + Route::get('/admin/stats/log', 'LogController@index')->middleware('perm:stats_see')->name('stats.log'); + Route::get('/admin/stats/instruction', 'StatsController@instruction')->middleware('perm:stats_see')->name('stats.instruction'); - /** User */ - Route::get('/admin/user' , 'UserController@index')->middleware('perm:user_see')->name('users'); - Route::get('/admin/user/{id}' , 'UserController@show')->middleware('perm:user_see')->name('user'); - Route::get('/admin/user/{id}/course','UserController@showCourses')->name('user.courses'); - Route::get('/admin/user/add' , 'UserController@create')->middleware('perm:user_add')->name('user.add'); - Route::post('/admin/user/add' , 'UserController@store')->middleware('perm:user_add'); - Route::get('/admin/user/edit/{id}' , 'UserController@edit')->middleware('perm:user_edit')->name('user.edit'); - Route::post('/admin/user/edit/{id}' , 'UserController@update')->middleware('perm:user_edit'); + /** Message */ + Route::get('/admin/message', 'MessageController@index')->middleware('perm:msg_see')->name('message'); + Route::get('/admin/message/add', 'MessageController@create')->middleware('perm:msg_add')->name('message.add'); + Route::post('/admin/message/add', 'MessageController@store')->middleware('perm:msg_add'); + Route::get('/admin/message/{id}', ['uses' => 'MessageController@show'])->middleware('perm:msg_see')->name('message.show'); - /** Config */ - Route::get('/admin/config/instruction', 'ScheduleController@index')->middleware('perm:config_edit')->name('config.schedule'); - Route::get('/admin/config/instruction/event_type/create', 'EventTypeController@create')->middleware('perm:config_edit')->name('config.schedule.event_type.create'); - Route::post('/admin/config/instruction/event_type/create', 'EventTypeController@store')->middleware('perm:config_edit'); - Route::get('/admin/config/instruction/event_type/{id}', 'EventTypeController@show')->middleware('perm:config_edit')->name('config.schedule.event_type'); - Route::patch('/admin/config/instruction/event_type/{id}', 'EventTypeController@update')->middleware('perm:config_edit'); - Route::patch('/admin/config/instruction' , 'ScheduleController@update')->middleware('perm:config_edit'); - Route::get('/admin/config/activity' , 'ComplementaryActivityController@index')->middleware('perm:config_edit')->name('config.complementary-activity'); - Route::get('/admin/config/activity/add' , 'ComplementaryActivityController@create')->middleware('perm:config_edit')->name('config.complementary-activity.add'); - Route::post('/admin/config/activity/add' , 'ComplementaryActivityController@store')->middleware('perm:config_edit'); - Route::get('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@edit')->middleware('perm:config_edit')->name('config.complementary-activity.edit'); - Route::post('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@update')->middleware('perm:config_edit'); - Route::post('/admin/config/general/edit','ConfigController@update')->middleware('perm:config_edit'); - Route::get('/admin/config/' , 'ConfigController@index')->middleware('perm:config_edit')->name('config.general'); - Route::get('/admin/config/customisation','ConfigController@customisation')->middleware('perm:config_edit')->name('config.customisation'); - Route::post('/admin/config/customisation','ConfigController@customisationUpdate')->middleware('perm:config_edit'); + /** User */ + Route::get('/admin/user', 'UserController@index')->middleware('perm:user_see')->name('users'); + Route::get('/admin/user/add', 'UserController@create')->middleware('perm:user_add')->name('user.add'); + Route::post('/admin/user/add', 'UserController@store')->middleware('perm:user_add'); + Route::get('/admin/user/{id}', 'UserController@show')->middleware('perm:user_see')->name('user'); + Route::get('/admin/user/{id}/course', 'UserController@showCourses')->name('user.courses'); + Route::get('/admin/user/edit/{id}', 'UserController@edit')->middleware('perm:user_edit')->name('user.edit'); + Route::post('/admin/user/edit/{id}', 'UserController@update')->middleware('perm:user_edit'); - Route::get('/admin/config/ranks','RankController@index')->middleware('perm:config_edit')->name('config.rank'); - Route::get('/admin/config/ranks/add','RankController@create')->middleware('perm:config_edit')->name('config.rank.add'); - Route::post('/admin/config/ranks/add','RankController@store')->middleware('perm:config_edit'); - Route::get('/admin/config/ranks/{id}','RankController@show')->middleware('perm:config_edit')->name('config.rank.edit'); - Route::post('/admin/config/ranks/{id}','RankController@update')->middleware('perm:config_edit'); - Route::get('/admin/config/jobs','JobController@index')->middleware('perm:config_edit')->name('config.jobs'); - Route::get('/admin/config/jobs/add','JobController@create')->middleware('perm:config_edit')->name('config.jobs.add'); - Route::post('/admin/config/jobs/add','JobController@store')->middleware('perm:config_edit'); - Route::get('/admin/config/jobs/{id}','JobController@edit')->middleware('perm:config_edit')->name('config.jobs.edit'); - Route::post('/admin/config/jobs/{id}','JobController@update')->middleware('perm:config_edit'); + /** Config */ + Route::get('/admin/config/instruction', 'ScheduleController@index')->middleware('perm:config_edit')->name('config.schedule'); + Route::get('/admin/config/instruction/event_type/create', 'EventTypeController@create')->middleware('perm:config_edit')->name('config.schedule.event_type.create'); + Route::post('/admin/config/instruction/event_type/create', 'EventTypeController@store')->middleware('perm:config_edit'); + Route::get('/admin/config/instruction/event_type/{id}', 'EventTypeController@show')->middleware('perm:config_edit')->name('config.schedule.event_type'); + Route::patch('/admin/config/instruction/event_type/{id}', 'EventTypeController@update')->middleware('perm:config_edit'); + Route::patch('/admin/config/instruction', 'ScheduleController@update')->middleware('perm:config_edit'); + Route::get('/admin/config/activity', 'ComplementaryActivityController@index')->middleware('perm:config_edit')->name('config.complementary-activity'); + Route::get('/admin/config/activity/add', 'ComplementaryActivityController@create')->middleware('perm:config_edit')->name('config.complementary-activity.add'); + Route::post('/admin/config/activity/add', 'ComplementaryActivityController@store')->middleware('perm:config_edit'); + Route::get('/admin/config/activity/edit/{id}', 'ComplementaryActivityController@edit')->middleware('perm:config_edit')->name('config.complementary-activity.edit'); + Route::post('/admin/config/activity/edit/{id}', 'ComplementaryActivityController@update')->middleware('perm:config_edit'); + Route::post('/admin/config/general/edit', 'ConfigController@update')->middleware('perm:config_edit'); + Route::get('/admin/config/', 'ConfigController@index')->middleware('perm:config_edit')->name('config.general'); + Route::get('/admin/config/customisation', 'ConfigController@customisation')->middleware('perm:config_edit')->name('config.customisation'); + Route::post('/admin/config/customisation', 'ConfigController@customisationUpdate')->middleware('perm:config_edit'); - Route::get('/admin/config/files' , 'ConfigController@showfilesConfig')->middleware('perm:config_edit')->name('config.files'); - Route::post('/admin/config/files' , 'ConfigController@editfilesConfig')->middleware('perm:config_edit'); + Route::get('/admin/config/ranks', 'RankController@index')->middleware('perm:config_edit')->name('config.rank'); + Route::get('/admin/config/ranks/add', 'RankController@create')->middleware('perm:config_edit')->name('config.rank.add'); + Route::post('/admin/config/ranks/add', 'RankController@store')->middleware('perm:config_edit'); + Route::get('/admin/config/ranks/{id}', 'RankController@show')->middleware('perm:config_edit')->name('config.rank.edit'); + Route::post('/admin/config/ranks/{id}', 'RankController@update')->middleware('perm:config_edit'); + Route::get('/admin/config/jobs', 'JobController@index')->middleware('perm:config_edit')->name('config.jobs'); + Route::get('/admin/config/jobs/add', 'JobController@create')->middleware('perm:config_edit')->name('config.jobs.add'); + Route::post('/admin/config/jobs/add', 'JobController@store')->middleware('perm:config_edit'); + Route::get('/admin/config/jobs/{id}', 'JobController@edit')->middleware('perm:config_edit')->name('config.jobs.edit'); + Route::post('/admin/config/jobs/{id}', 'JobController@update')->middleware('perm:config_edit'); - /** Public page */ - Route::get('/admin/public/edit/{config}', 'PublicController@edit')->middleware('perm:config_edit'); - Route::post('/admin/public/edit/{config}', 'PublicController@update')->middleware('perm:config_edit'); + Route::get('/admin/config/files', 'ConfigController@showfilesConfig')->middleware('perm:config_edit')->name('config.files'); + Route::post('/admin/config/files', 'ConfigController@editfilesConfig')->middleware('perm:config_edit'); - /** Picture */ - Route::get('/admin/picture','PictureController@indexAdmin')->middleware('perm:picture_see')->name('picture'); - Route::get('/admin/picture/add','PictureController@create')->middleware('perm:picture_add')->name('picture.add'); - Route::post('/admin/picture/add','PictureController@store')->middleware('perm:picture_add'); - Route::get('/admin/picture/edit/{id}','PictureController@edit')->middleware('perm:picture_edit')->name('picture.edit'); - Route::post('/admin/picture/edit/{id}','PictureController@update')->middleware('perm:picture_edit'); + /** Public page */ + Route::get('/admin/public/edit/{config}', 'PublicController@edit')->middleware('perm:config_edit'); + Route::post('/admin/public/edit/{config}', 'PublicController@update')->middleware('perm:config_edit'); - /** Inventory */ - Route::get('/admin/inventory' , 'InventoryController@index')->middleware('perm:inventory_see')->name('inv'); - Route::get('/admin/inventory/management','InventoryController@management')->middleware('perm:inventory_edit')->name('inv.management'); + /** Picture */ + Route::get('/admin/picture', 'PictureController@indexAdmin')->middleware('perm:picture_see')->name('picture'); + Route::get('/admin/picture/add', 'PictureController@create')->middleware('perm:picture_add')->name('picture.add'); + Route::post('/admin/picture/add', 'PictureController@store')->middleware('perm:picture_add'); + Route::get('/admin/picture/edit/{id}', 'PictureController@edit')->middleware('perm:picture_edit')->name('picture.edit'); + Route::post('/admin/picture/edit/{id}', 'PictureController@update')->middleware('perm:picture_edit'); - /** Item Category */ - Route::get('/admin/inventory/management/category','ItemCategoryController@index')->middleware('perm:inventory_edit')->name('inv.management.category'); - Route::get('/admin/inventory/management/category/add','ItemCategoryController@create')->middleware('perm:inventory_add')->name('inv.management.category.add'); - Route::post('/admin/inventory/management/category/add','ItemCategoryController@store')->middleware('perm:inventory_add'); - Route::get('/admin/inventory/management/category/edit/{id}','ItemCategoryController@edit')->middleware('perm:inventory_edit')->name('inv.management.category.edit'); - Route::post('/admin/inventory/management/category/edit/{id}','ItemCategoryController@update')->middleware('perm:inventory_edit'); + /** Inventory */ + Route::get('/admin/inventory', 'InventoryController@index')->middleware('perm:inventory_see')->name('inv'); + Route::get('/admin/inventory/management', 'InventoryController@management')->middleware('perm:inventory_edit')->name('inv.management'); - /** News */ - Route::get('/admin/news','NewsController@indexAdmin')->middleware('perm:news_see')->name('news'); - Route::get('/admin/news/add','NewsController@create')->middleware('perm:news_add')->name('news.add'); - Route::post('/admin/news/add','NewsController@store')->middleware('perm:news_add'); - Route::get('/admin/news/edit/{id}','NewsController@edit')->middleware('perm:news_edit')->name('news.edit'); - Route::post('/admin/news/edit/{id}','NewsController@update')->middleware('perm:news_edit'); + /** Item Category */ + Route::get('/admin/inventory/management/category', 'ItemCategoryController@index')->middleware('perm:inventory_edit')->name('inv.management.category'); + Route::get('/admin/inventory/management/category/add', 'ItemCategoryController@create')->middleware('perm:inventory_add')->name('inv.management.category.add'); + Route::post('/admin/inventory/management/category/add', 'ItemCategoryController@store')->middleware('perm:inventory_add'); + Route::get('/admin/inventory/management/category/edit/{id}', 'ItemCategoryController@edit')->middleware('perm:inventory_edit')->name('inv.management.category.edit'); + Route::post('/admin/inventory/management/category/edit/{id}', 'ItemCategoryController@update')->middleware('perm:inventory_edit'); - /** Articles */ - Route::get('/admin/article','ArticleController@index')->middleware('perm:article_see')->name('article'); - Route::get('/admin/article/activity/edit/{id}','ArticleController@editActivity')->middleware('perm:article_edit')->name('article.edit'); - Route::post('/admin/article/activity/edit/{id}','ArticleController@updateActivity')->middleware('perm:article_edit'); - Route::get('/admin/article/activity/picture/{id}','ArticleController@pictureActivity')->middleware('perm:article_edit'); - Route::get('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityCreate')->middleware('perm:article_edit'); - Route::post('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityStore')->middleware('perm:article_edit'); + /** News */ + Route::get('/admin/news', 'NewsController@indexAdmin')->middleware('perm:news_see')->name('news'); + Route::get('/admin/news/add', 'NewsController@create')->middleware('perm:news_add')->name('news.add'); + Route::post('/admin/news/add', 'NewsController@store')->middleware('perm:news_add'); + Route::get('/admin/news/edit/{id}', 'NewsController@edit')->middleware('perm:news_edit')->name('news.edit'); + Route::post('/admin/news/edit/{id}', 'NewsController@update')->middleware('perm:news_edit'); - /** Booking */ - Route::get('/admin/booking','BookingController@index')->middleware('perm:booking_see'); - Route::get('/admin/booking/{id}','BookingController@show')->middleware('perm:booking_see'); - Route::get('/admin/booking/{type}/{id}','BookingController@index')->middleware('perm:booking_see'); - Route::get('/admin/booking/{type}/{id}/add','BookingController@create')->middleware('perm:booking_add'); - Route::post('/admin/booking/{type}/{id}/add','BookingController@store')->middleware('perm:booking_add'); - Route::get('/admin/inventory/booking' , 'InventoryController@booking')->middleware('perm:inventory_see'); - Route::post('/admin/booking/edit','BookingController@update')->middleware('perm:booking_see')->middleware('perm:booking_edit'); + /** Articles */ + Route::get('/admin/article', 'ArticleController@index')->middleware('perm:article_see')->name('article'); + Route::get('/admin/article/activity/edit/{id}', 'ArticleController@editActivity')->middleware('perm:article_edit')->name('article.edit'); + Route::post('/admin/article/activity/edit/{id}', 'ArticleController@updateActivity')->middleware('perm:article_edit'); + Route::get('/admin/article/activity/picture/{id}', 'ArticleController@pictureActivity')->middleware('perm:article_edit'); + Route::get('/admin/article/activity/picture/{id}/add', 'ArticleController@pictureActivityCreate')->middleware('perm:article_edit'); + Route::post('/admin/article/activity/picture/{id}/add', 'ArticleController@pictureActivityStore')->middleware('perm:article_edit'); - /** Item */ - Route::get('/admin/item/add' , 'ItemController@create')->middleware('perm:inventory_add'); - Route::get('/admin/item/edit/{id}' , 'ItemController@edit')->middleware('perm:inventory_edit'); - Route::post('/admin/item/add' , 'ItemController@store')->middleware('perm:inventory_add'); - Route::post('/admin/item/edit/{id}' , 'ItemController@update')->middleware('perm:inventory_edit'); + /** Booking */ + Route::get('/admin/booking', 'BookingController@index')->middleware('perm:booking_see'); + Route::get('/admin/booking/{id}', 'BookingController@show')->middleware('perm:booking_see'); + Route::get('/admin/booking/{type}/{id}', 'BookingController@index')->middleware('perm:booking_see'); + Route::get('/admin/booking/{type}/{id}/add', 'BookingController@create')->middleware('perm:booking_add'); + Route::post('/admin/booking/{type}/{id}/add', 'BookingController@store')->middleware('perm:booking_add'); + Route::get('/admin/inventory/booking', 'InventoryController@booking')->middleware('perm:inventory_see'); + Route::post('/admin/booking/edit', 'BookingController@update')->middleware('perm:booking_see')->middleware('perm:booking_edit'); - /** Notification */ - Route::get('/admin/notication/mark','UserController@notificationmarkALL'); - Route::post('/admin/notication/mark/{id}','UserController@notificationmark'); + /** Item */ + Route::get('/admin/item/add', 'ItemController@create')->middleware('perm:inventory_add'); + Route::get('/admin/item/edit/{id}', 'ItemController@edit')->middleware('perm:inventory_edit'); + Route::post('/admin/item/add', 'ItemController@store')->middleware('perm:inventory_add'); + Route::post('/admin/item/edit/{id}', 'ItemController@update')->middleware('perm:inventory_edit'); - /** Profil */ - Route::get('/admin/profil/courses' , 'ProfilController@courses')->name('profil.courses'); - Route::get('/admin/profil/avatar' , 'UserController@UserAvatar')->name('profil.avatar'); - Route::get('/admin/profil/password' , 'UserController@UserPassword')->name('profil.psw'); - Route::get('/admin/profil/adress' , 'UserController@UserAdress')->name('profil.adress'); - Route::get('/admin/profil/notifications','UserController@userNotification')->name('profil.notifications'); - Route::post('/admin/profil/edit/adress' , 'UserController@editUserAdress'); - Route::post('/admin/profil/edit/password' , 'UserController@editUserPassword'); - Route::get('/admin/profil/edit/avatar/{id}' , 'UserController@editUserAvatar'); - Route::get('/admin/profil/{id?}' , 'UserController@showUserProfil')->name('profil'); + /** Notification */ + Route::get('/admin/notication/mark', 'UserController@notificationmarkALL'); + Route::post('/admin/notication/mark/{id}', 'UserController@notificationmark'); - /** Instruction */ - Route::get('/admin/instruction','AdminController@instruction')->name('instruction'); - Route::get('/admin/instruction/guide','FilesController@guide')->middleware('perm:instruction_guide_see')->name('instruction.guide'); - Route::get('/admin/instruction/files','FilesController@instruction')->middleware('perm:file_see')->name('instruction.files'); + /** Profil */ + Route::get('/admin/profil/courses', 'ProfilController@courses')->name('profil.courses'); + Route::get('/admin/profil/avatar', 'UserController@UserAvatar')->name('profil.avatar'); + Route::get('/admin/profil/password', 'UserController@UserPassword')->name('profil.psw'); + Route::get('/admin/profil/adress', 'UserController@UserAdress')->name('profil.adress'); + Route::get('/admin/profil/notifications', 'UserController@userNotification')->name('profil.notifications'); + Route::post('/admin/profil/edit/adress', 'UserController@editUserAdress'); + Route::post('/admin/profil/edit/password', 'UserController@editUserPassword'); + Route::get('/admin/profil/edit/avatar/{id}', 'UserController@editUserAvatar'); + Route::get('/admin/profil/{id?}', 'UserController@showUserProfil')->name('profil'); - /** Courses */ - Route::get('/admin/course','CourseController@index')->name('course'); - Route::get('/admin/course/{id}','CourseController@show')->name('course.show')->middleware('courseperm:see'); - Route::patch('/admin/course/{id}/commentOfficer','CourseController@updateCommentOfficer')->middleware('courseperm:comment_officer'); - Route::patch('/admin/course/{id}/comment','CourseController@updateComment')->middleware('courseperm:edit'); - Route::patch('/admin/course/{id}/plan/commentOfficer','CourseController@updateCommentOfficerPlan')->middleware('courseperm:comment_plan_officer'); - Route::patch('/admin/course/{id}/plan/comment','CourseController@updateCommentPlan')->middleware('courseperm:edit'); - Route::post('/admin/course/{id}/lessonPlan','CourseController@updateLessonPlan')->middleware('courseperm:edit'); + /** Instruction */ + Route::get('/admin/instruction', 'AdminController@instruction')->name('instruction'); + Route::get('/admin/instruction/guide', 'FilesController@guide')->middleware('perm:instruction_guide_see')->name('instruction.guide'); + Route::get('/admin/instruction/files', 'FilesController@instruction')->middleware('perm:file_see')->name('instruction.files'); + + /** Courses */ + Route::get('/admin/course', 'CourseController@index')->name('course'); + Route::get('/admin/course/{id}', 'CourseController@show')->name('course.show')->middleware('courseperm:see'); + Route::patch('/admin/course/{id}/commentOfficer', 'CourseController@updateCommentOfficer')->middleware('courseperm:comment_officer'); + Route::patch('/admin/course/{id}/comment', 'CourseController@updateComment')->middleware('courseperm:edit'); + Route::patch('/admin/course/{id}/plan/commentOfficer', 'CourseController@updateCommentOfficerPlan')->middleware('courseperm:comment_plan_officer'); + Route::patch('/admin/course/{id}/plan/comment', 'CourseController@updateCommentPlan')->middleware('courseperm:edit'); + Route::post('/admin/course/{id}/lessonPlan', 'CourseController@updateLessonPlan')->middleware('courseperm:edit'); /** Files */ - Route::post('/file/create','GoogleDriveController@createFile')->middleware('fileperm:folder,w'); - Route::post('/file/upload','GoogleDriveController@uploadFile')->middleware('fileperm:folder,w'); - Route::post('/folder/create','GoogleDriveController@createFolder')->middleware('fileperm:folder,w'); - Route::get('/file/delete','GoogleDriveController@deleteFile')->middleware('perm:file_delete')->middleware('fileperm:folder,w'); - Route::get('/folder/delete','GoogleDriveController@deleteDir')->middleware('perm:file_delete')->middleware('fileperm:folder,w'); - Route::get('/admin/files','FilesController@index')->middleware('perm:file_see')->name('files'); - Route::get('/admin/files/cadet','FilesController@cadet')->middleware('perm:file_see')->name('files.cadet')->middleware('fileperm:folder,r'); - Route::get('/admin/files/staff','FilesController@staff')->middleware('perm:file_see')->name('files.staff')->middleware('fileperm:folder,r'); - Route::get('/admin/files/etamas','FilesController@etamas')->middleware('perm:file_see')->name('files.etamas')->middleware('fileperm:folder,r'); - Route::get('/admin/files/officier','FilesController@officier')->middleware('perm:file_see')->name('files.officier')->middleware('fileperm:folder,r'); - Route::get('/admin/files/publique','FilesController@publique')->middleware('perm:file_see')->name('files.publique')->middleware('fileperm:folder,r'); - - Route::get('/admin/drive/{folder?}','GoogleDriveController@index')->middleware('fileperm:folder,r','perm:drive_see')->name('drive'); - Route::get('/admin/folder/{folder?}','GoogleDriveController@index')->middleware('fileperm:folder,r')->name('drive'); - Route::get('/admin/drive/{folder}/permission','GoogleDriveController@editPermission')->middleware('fileperm:folder,p')->name('drive.permission'); - Route::patch('/admin/drive/{folder}/permission/{subject}/{id}','GoogleDriveController@patchPermission')->middleware('perm:file_see','fileperm:folder,p'); - Route::get('/admin/drive/{folder}/deletepermission/{subject}/{id}','GoogleDriveController@deletePermission')->middleware('perm:file_see','fileperm:folder,p'); - Route::patch('/admin/drive/{folder}/addpermission/{subject}','GoogleDriveController@addPermission')->middleware('perm:file_see','fileperm:folder,p'); + Route::post('/file/create', 'GoogleDriveController@createFile')->middleware('fileperm:folder,w'); + Route::post('/file/upload', 'GoogleDriveController@uploadFile')->middleware('fileperm:folder,w'); + Route::post('/folder/create', 'GoogleDriveController@createFolder')->middleware('fileperm:folder,w'); + Route::get('/file/delete', 'GoogleDriveController@deleteFile')->middleware('perm:file_delete')->middleware('fileperm:folder,w'); + Route::get('/folder/delete', 'GoogleDriveController@deleteDir')->middleware('perm:file_delete')->middleware('fileperm:folder,w'); + Route::get('/admin/files', 'FilesController@index')->middleware('perm:file_see')->name('files'); + Route::get('/admin/files/cadet', 'FilesController@cadet')->middleware('perm:file_see')->name('files.cadet')->middleware('fileperm:folder,r'); + Route::get('/admin/files/staff', 'FilesController@staff')->middleware('perm:file_see')->name('files.staff')->middleware('fileperm:folder,r'); + Route::get('/admin/files/etamas', 'FilesController@etamas')->middleware('perm:file_see')->name('files.etamas')->middleware('fileperm:folder,r'); + Route::get('/admin/files/officier', 'FilesController@officier')->middleware('perm:file_see')->name('files.officier')->middleware('fileperm:folder,r'); + Route::get('/admin/files/publique', 'FilesController@publique')->middleware('perm:file_see')->name('files.publique')->middleware('fileperm:folder,r'); + Route::get('/admin/drive/{folder?}', 'GoogleDriveController@index')->middleware('fileperm:folder,r', 'perm:drive_see')->name('drive'); + Route::get('/admin/folder/{folder?}', 'GoogleDriveController@index')->middleware('fileperm:folder,r')->name('drive'); + Route::get('/admin/drive/{folder}/permission', 'GoogleDriveController@editPermission')->middleware('fileperm:folder,p')->name('drive.permission'); + Route::patch('/admin/drive/{folder}/permission/{subject}/{id}', 'GoogleDriveController@patchPermission')->middleware('perm:file_see', 'fileperm:folder,p'); + Route::get('/admin/drive/{folder}/deletepermission/{subject}/{id}', 'GoogleDriveController@deletePermission')->middleware('perm:file_see', 'fileperm:folder,p'); + Route::patch('/admin/drive/{folder}/addpermission/{subject}', 'GoogleDriveController@addPermission')->middleware('perm:file_see', 'fileperm:folder,p'); /** OCOM */ - Route::get('/admin/ocom','OCOMController@index')->name('ocom')->middleware('perm:instruction_db_ocom_see'); - Route::get('/admin/ocom/generate','OCOMController@showgenerate')->name('ocom.generate')->middleware('perm:instruction_db_ocom_edit'); - Route::put('/admin/ocom/generate','OCOMController@generate')->middleware('perm:instruction_db_ocom_edit'); - Route::get('/admin/ocom/add','OCOMController@create')->name('ocom.add')->middleware('perm:instruction_db_ocom_add'); - Route::put('/admin/ocom/add','OCOMController@store')->middleware('perm:instruction_db_ocom_add'); - Route::get('/admin/ocom/{id}/edit','OCOMController@edit')->name('ocom.edit')->middleware('perm:instruction_db_ocom_edit'); - Route::patch('/admin/ocom/{id}/edit','OCOMController@update')->middleware('perm:instruction_db_ocom_edit'); - Route::get('/admin/ocom/{id}','OCOMController@show')->name('ocom.show')->middleware('perm:instruction_db_ocom_see'); + Route::get('/admin/ocom', 'OCOMController@index')->name('ocom')->middleware('perm:instruction_db_ocom_see'); + Route::get('/admin/ocom/generate', 'OCOMController@showgenerate')->name('ocom.generate')->middleware('perm:instruction_db_ocom_edit'); + Route::put('/admin/ocom/generate', 'OCOMController@generate')->middleware('perm:instruction_db_ocom_edit'); + Route::get('/admin/ocom/add', 'OCOMController@create')->name('ocom.add')->middleware('perm:instruction_db_ocom_add'); + Route::put('/admin/ocom/add', 'OCOMController@store')->middleware('perm:instruction_db_ocom_add'); + Route::get('/admin/ocom/{id}/edit', 'OCOMController@edit')->name('ocom.edit')->middleware('perm:instruction_db_ocom_edit'); + Route::patch('/admin/ocom/{id}/edit', 'OCOMController@update')->middleware('perm:instruction_db_ocom_edit'); + Route::get('/admin/ocom/{id}', 'OCOMController@show')->name('ocom.show')->middleware('perm:instruction_db_ocom_see'); });