From b82ec0adc006afc59e2ae045913ec0b682776a81 Mon Sep 17 00:00:00 2001 From: Flavio Barachino Date: Tue, 20 Jun 2023 08:27:20 +0200 Subject: [PATCH] Aggiunto assegnazione permessi diretti ad utente --- app/Http/Controllers/ProgettiController.php | 29 +++++++++--- app/Http/Controllers/Utenti.php | 50 ++++++++++++++++----- app/Models/Progetti.php | 11 +++++ resources/views/components/menu.blade.php | 2 +- resources/views/progetti/list.blade.php | 7 ++- resources/views/users/assignperm.blade.php | 47 +++++++++++++++++++ routes/admin.php | 6 +++ 7 files changed, 133 insertions(+), 19 deletions(-) create mode 100644 resources/views/users/assignperm.blade.php diff --git a/app/Http/Controllers/ProgettiController.php b/app/Http/Controllers/ProgettiController.php index 0fac187..d1f039b 100644 --- a/app/Http/Controllers/ProgettiController.php +++ b/app/Http/Controllers/ProgettiController.php @@ -19,28 +19,28 @@ class ProgettiController extends Controller 'progetti'=>Progetti::getProgetti() ]); } - + public function nuovoProgetto() { return view('progetti.new',['coordinatori'=>User::getUsers()]); } - + public function getCoordinatori() { return json_encode(User::getUsers()); } - + public function salvaProgetto(Request $request) { Progetti::saveProgetto($request); return redirect(Route('progetti')); } - + public function deleteProgetto(Request $param) { Progetti::delProgetto($param['id']); return redirect(Route('progetti')); } - + public function dettaglioProgetto($id) { @@ -51,5 +51,22 @@ class ProgettiController extends Controller return view('progetti.dettaglio',['dettaglio'=>$progetto, 'righe'=>$righe, 'tot'=>$costo_tot]); //dd($righe); } - + + public function chiudiProgetto(Request $id) + { + Progetti::chiudiProgetto($id['id']); + return redirect(Route('progetti')); + } + + public function riapriProgetto(Request $id) + { + Progetti::riapriProgetto($id['id']); + return redirect(Route('progetti')); + } + + public function stampaPDF(Request $id) + { + + } + } diff --git a/app/Http/Controllers/Utenti.php b/app/Http/Controllers/Utenti.php index c8d33be..a2b9aa2 100644 --- a/app/Http/Controllers/Utenti.php +++ b/app/Http/Controllers/Utenti.php @@ -12,7 +12,7 @@ use App\Models\User; class Utenti extends Controller { - + public function createRole($ruolo) { $role=Role::create(['name'=>$ruolo]); @@ -23,40 +23,68 @@ class Utenti extends Controller $permission=Permission::create(['name'=>$permesso]); return json_encode(Permission::all()->pluck('name')); } - + function userClass() { $user=new User(); return get_class_methods($user); } - + // post del create user function createUser(Request $params){ User::addUser($params); return redirect('/admin/users/new'); } - + // mostra il form della creazione dell'utente function addUser(){ $roles = Role::all(); $users = User::all(); return view('users.create',['ruoli'=>$roles,'users'=>$users]); } - + function listUser(){ $users = User::all(); - return view('users.list',['users'=>$users]); + return view('users.list',['users'=>$users]); } - + function listRoles(){ $roles = Role::all(); return $roles; } - + function deleteUser($id) { User::destroy($id); - + return redirect('/admin/users/new'); } - - + + function givePermissionToUser() + { + $users=User::all(); + $permissions=Permission::all(); + return view('users.assignperm',['users'=>$users,'permissions'=>$permissions]); + } + + function assignPermission(Request $request) + { + //$user=User::getUserbyId($request['user']); + $user=User::findOrFail($request['user']); + foreach($request['permesso'] as $key => $value){ + if($value=='true') + { + $key=str_replace('\'','',$key); + $user->givePermissionTo($key); + // $permission['allowed'][]=$key; + } + else + { + $key=str_replace('\'','',$key); + $user->revokePermissionTo($key); + // $permission['denied'][]=$key; + } + + } + return redirect('/admin/users/givepermission'); + } } + diff --git a/app/Models/Progetti.php b/app/Models/Progetti.php index 9b4a8e4..f17eaa1 100644 --- a/app/Models/Progetti.php +++ b/app/Models/Progetti.php @@ -66,4 +66,15 @@ class Progetti extends Model ]); } + + public static function riapriProgetto($progetto_id) + { + DB::table('progettis') + ->where('id','=', $progetto_id) + ->update([ + 'stato'=>'aperto', + 'data_fine'=>null, + ]); + } + } diff --git a/resources/views/components/menu.blade.php b/resources/views/components/menu.blade.php index c1615d6..8dd0bb4 100644 --- a/resources/views/components/menu.blade.php +++ b/resources/views/components/menu.blade.php @@ -58,7 +58,7 @@
  • Gruppi
  • Permessi
  • --> -
  • Assegna Ruoli
  • +
  • Assegna Permessi
  • diff --git a/resources/views/progetti/list.blade.php b/resources/views/progetti/list.blade.php index 2c615df..2d7076e 100644 --- a/resources/views/progetti/list.blade.php +++ b/resources/views/progetti/list.blade.php @@ -43,7 +43,12 @@ {{ $progetto->name; }} {{ $progetto->budget; }} @if($progetto->stato != 'chiuso')Cancella@endif + class="btn btn-danger">Cancella Chiudi@endif + @if($progetto->stato == 'chiuso')Riapri@endif + Stampa PDF @endforeach diff --git a/resources/views/users/assignperm.blade.php b/resources/views/users/assignperm.blade.php new file mode 100644 index 0000000..29b6b60 --- /dev/null +++ b/resources/views/users/assignperm.blade.php @@ -0,0 +1,47 @@ +@extends('admin') +@section('content') +
    +
    +

    Assegnazione permessi

    +
    +
    +
    +
    +
    +
    +
    + Nuova assegnazione permessi +
    +
    + +
    + + + + + + + @foreach($permissions as $perm) + + + + + @endforeach +
    PermessoAzione
    {{$perm->name}} + Attiva +   + Disattiva +
    + @csrf + +
    +
    +
    +
    +
    +
    +@endsection diff --git a/routes/admin.php b/routes/admin.php index dde874a..375864f 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -128,6 +128,8 @@ Route::group(['middleware'=>['permission:amministrazione']], function(){ Route::post('users/new',[Utenti::class,'createUser']); Route::get('users/roles',[Utenti::class,'listRoles']); Route::get('users/delete/{id}',[Utenti::class,'deleteUser']); + Route::get('users/givepermission',[Utenti::class,'givePermissionToUser']); + Route::post('users/givepermission',[Utenti::class,'assignPermission']); }); // PROGETTI Route::group(['middleware'=>['permission:progetti']], function(){ @@ -141,6 +143,10 @@ Route::group(['middleware'=>['permission:progetti']], function(){ Route::get('progetti/detail/edit/{id}', [RigaProgettoController::class, 'editRiga']); Route::post('progetti/rigaupdate', [RigaProgettoController::class, 'updateRiga']); Route::get('progetti/coordinatori', [ProgettiController::class, 'getCoordinatori']); + Route::get('progetti/close',[ProgettiController::class, 'chiudiProgetto']); + Route::get('progetti/reopen',[ProgettiController::class, 'riapriProgetto']); + + });