Aggiunto assegnazione permessi diretti ad utente

This commit is contained in:
Amministratore 2023-06-20 08:27:20 +02:00
parent 30cf03bd7d
commit b82ec0adc0
7 changed files with 133 additions and 19 deletions

View File

@ -19,28 +19,28 @@ class ProgettiController extends Controller
'progetti'=>Progetti::getProgetti() 'progetti'=>Progetti::getProgetti()
]); ]);
} }
public function nuovoProgetto() public function nuovoProgetto()
{ {
return view('progetti.new',['coordinatori'=>User::getUsers()]); return view('progetti.new',['coordinatori'=>User::getUsers()]);
} }
public function getCoordinatori() public function getCoordinatori()
{ {
return json_encode(User::getUsers()); return json_encode(User::getUsers());
} }
public function salvaProgetto(Request $request) public function salvaProgetto(Request $request)
{ {
Progetti::saveProgetto($request); Progetti::saveProgetto($request);
return redirect(Route('progetti')); return redirect(Route('progetti'));
} }
public function deleteProgetto(Request $param) { public function deleteProgetto(Request $param) {
Progetti::delProgetto($param['id']); Progetti::delProgetto($param['id']);
return redirect(Route('progetti')); return redirect(Route('progetti'));
} }
public function dettaglioProgetto($id) public function dettaglioProgetto($id)
{ {
@ -51,5 +51,22 @@ class ProgettiController extends Controller
return view('progetti.dettaglio',['dettaglio'=>$progetto, 'righe'=>$righe, 'tot'=>$costo_tot]); return view('progetti.dettaglio',['dettaglio'=>$progetto, 'righe'=>$righe, 'tot'=>$costo_tot]);
//dd($righe); //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)
{
}
} }

View File

@ -12,7 +12,7 @@ use App\Models\User;
class Utenti extends Controller class Utenti extends Controller
{ {
public function createRole($ruolo) public function createRole($ruolo)
{ {
$role=Role::create(['name'=>$ruolo]); $role=Role::create(['name'=>$ruolo]);
@ -23,40 +23,68 @@ class Utenti extends Controller
$permission=Permission::create(['name'=>$permesso]); $permission=Permission::create(['name'=>$permesso]);
return json_encode(Permission::all()->pluck('name')); return json_encode(Permission::all()->pluck('name'));
} }
function userClass() { function userClass() {
$user=new User(); $user=new User();
return get_class_methods($user); return get_class_methods($user);
} }
// post del create user // post del create user
function createUser(Request $params){ function createUser(Request $params){
User::addUser($params); User::addUser($params);
return redirect('/admin/users/new'); return redirect('/admin/users/new');
} }
// mostra il form della creazione dell'utente // mostra il form della creazione dell'utente
function addUser(){ function addUser(){
$roles = Role::all(); $roles = Role::all();
$users = User::all(); $users = User::all();
return view('users.create',['ruoli'=>$roles,'users'=>$users]); return view('users.create',['ruoli'=>$roles,'users'=>$users]);
} }
function listUser(){ function listUser(){
$users = User::all(); $users = User::all();
return view('users.list',['users'=>$users]); return view('users.list',['users'=>$users]);
} }
function listRoles(){ function listRoles(){
$roles = Role::all(); $roles = Role::all();
return $roles; return $roles;
} }
function deleteUser($id) { function deleteUser($id) {
User::destroy($id); User::destroy($id);
return redirect('/admin/users/new'); 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');
}
} }

View File

@ -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,
]);
}
} }

View File

@ -58,7 +58,7 @@
<li><a class="active" href="/admin/users/newRole">Gruppi</a></li> <li><a class="active" href="/admin/users/newRole">Gruppi</a></li>
<li><a class="active" href="/admin/users/newPermission">Permessi</a></li> <li><a class="active" href="/admin/users/newPermission">Permessi</a></li>
--> -->
<li><a class="active" href="/admin/users/assignRole">Assegna Ruoli</a></li> <li><a class="active" href="/admin/users/givepermission">Assegna Permessi</a></li>
<!-- <!--
<li><a href="/login">Login Page</a></li> <li><a href="/login">Login Page</a></li>
--> -->

View File

@ -43,7 +43,12 @@
<td>{{ $progetto->name; }}</td> <td>{{ $progetto->name; }}</td>
<td>{{ $progetto->budget; }}</td> <td>{{ $progetto->budget; }}</td>
<td>@if($progetto->stato != 'chiuso')<a href="progetti/delete?id={{ $progetto->progetto }}" <td>@if($progetto->stato != 'chiuso')<a href="progetti/delete?id={{ $progetto->progetto }}"
class="btn btn-danger">Cancella</a>@endif</td> class="btn btn-danger">Cancella</a>&nbsp;<a href="progetti/close?id={{ $progetto->progetto }}"
class="btn btn-danger">Chiudi</a>@endif
@if($progetto->stato == 'chiuso')<a href="progetti/reopen?id={{ $progetto->progetto }}"
class="btn btn-danger">Riapri</a>@endif
<a href="progetti/print?id={{ $progetto->progetto }}"
class="btn btn-primary">Stampa PDF</a></td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>

View File

@ -0,0 +1,47 @@
@extends('admin')
@section('content')
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Assegnazione permessi</h1>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Nuova assegnazione permessi
</div>
<div class="panel-body">
<!-- Form -->
<form action="" method="POST">
<select name="user" class="form-control">
@foreach($users as $user)
<option value="{{$user->id}}"> {{$user->name}}</option>
@endforeach
</select>
<table>
<tr>
<th>Permesso</th>
<th>Azione</th>
</tr>
@foreach($permissions as $perm)
<tr>
<td>{{$perm->name}}</td>
<td>
Attiva<input type="radio" name="permesso['{{$perm->name}}']" value="true">
&nbsp;
Disattiva <input type="radio" name="permesso['{{$perm->name}}']" value="false">
</td>
</tr>
@endforeach
</table>
@csrf
<input type="Submit" name="submit" value="associa">
</form>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@ -128,6 +128,8 @@ Route::group(['middleware'=>['permission:amministrazione']], function(){
Route::post('users/new',[Utenti::class,'createUser']); Route::post('users/new',[Utenti::class,'createUser']);
Route::get('users/roles',[Utenti::class,'listRoles']); Route::get('users/roles',[Utenti::class,'listRoles']);
Route::get('users/delete/{id}',[Utenti::class,'deleteUser']); Route::get('users/delete/{id}',[Utenti::class,'deleteUser']);
Route::get('users/givepermission',[Utenti::class,'givePermissionToUser']);
Route::post('users/givepermission',[Utenti::class,'assignPermission']);
}); });
// PROGETTI // PROGETTI
Route::group(['middleware'=>['permission:progetti']], function(){ 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::get('progetti/detail/edit/{id}', [RigaProgettoController::class, 'editRiga']);
Route::post('progetti/rigaupdate', [RigaProgettoController::class, 'updateRiga']); Route::post('progetti/rigaupdate', [RigaProgettoController::class, 'updateRiga']);
Route::get('progetti/coordinatori', [ProgettiController::class, 'getCoordinatori']); Route::get('progetti/coordinatori', [ProgettiController::class, 'getCoordinatori']);
Route::get('progetti/close',[ProgettiController::class, 'chiudiProgetto']);
Route::get('progetti/reopen',[ProgettiController::class, 'riapriProgetto']);
}); });