BUB-17 aggiunto form inserimento gruppi e permessi con assegnazione dei permessi ai gruppi

This commit is contained in:
Amministratore 2023-04-12 14:47:17 +02:00
parent c6ab14e513
commit 75739cba58
9 changed files with 289 additions and 104 deletions

View File

@ -2,11 +2,12 @@
namespace App\Http\Controllers;
use App\Models\Event;
use Illuminate\Http\Request;
class FullCalenderController extends Controller
{
**
/**
* Write code on Method
@ -40,7 +41,7 @@ class FullCalenderController extends Controller
return view('fullcalender');
return view('fullcalendar');
}

View File

@ -0,0 +1,61 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Junges\ACL\Models\Group;
use Junges\ACL\Models\Permission;
class Utenti extends Controller
{
//
public function nuovoGruppo()
{
return view('vendor.junges.form_addGroup',['gruppi'=>Utenti::getGruppi()]);
}
public function saveNuovoGruppo(Request $request)
{
$group=Group::create(['name' => $request['gruppo'],'description'=>$request['descrizione']]);
return view('vendor.junges.form_addGroup',['gruppi'=>Utenti::getGruppi()]);
}
public function nuovoPermesso()
{
return view('vendor.junges.form_addPermission',['permessi'=>Utenti::getPermessi()]);
}
public function saveNuovoPermesso(Request $request)
{
$group=Permission::create(['name' => $request['permesso'],'description'=>$request['descrizione']]);
return view('vendor.junges.form_addPermission',['permessi'=>Utenti::getPermessi()]);
}
public function getPermessi()
{
return DB::table('permissions')->orderBy('name')->get();
}
public function getGruppi()
{
return DB::table('groups')->orderBy('name')->get();
}
public function vw_assignToGroup()
{
return view('vendor.junges.assignPermissionToGroup',[
'permessi'=>Utenti::getPermessi(),
'gruppi'=>Utenti::getGruppi(),
]);
}
public function assignPermissionToGroup(Request $request)
{
$group=Group::findByName($request['gruppo']);
$group->assignPermission($request['permesso']);
return view('vendor.junges.assignPermissionToGroup',[
'permessi'=>Utenti::getPermessi(),
'gruppi'=>Utenti::getGruppi(),
]);
}
}

View File

@ -55,4 +55,10 @@ class User extends Authenticatable
{
return 'guid';
}
public static function addGroup($gruppo)
{
$user= new User();
$user->assignGroup($gruppo);
}
}

View File

@ -78,69 +78,22 @@
</li>
</ul>
</li>
<!-- <li>
<a href="forms.html"><i class="fa fa-edit fa-fw"></i> Forms</a>
</li>
<li>
<a href="#"><i class="fa fa-wrench fa-fw"></i> UI Elements<span class="fa arrow"></span></a>
<ul class="nav nav-second-level">
<li>
<a href="panels-wells.html">Panels and Wells</a>
</li>
<li>
<a href="buttons.html">Buttons</a>
</li>
<li>
<a href="notifications.html">Notifications</a>
</li>
<li>
<a href="typography.html">Typography</a>
</li>
<li>
<a href="icons.html"> Icons</a>
</li>
<li>
<a href="grid.html">Grid</a>
</li>
</ul>
<!-- /.nav-second-level -->
<!--</li>
<li>
<a href="#"><i class="fa fa-sitemap fa-fw"></i> Multi-Level Dropdown<span class="fa arrow"></span></a>
<ul class="nav nav-second-level">
<li>
<a href="#">Second Level Item</a>
</li>
<li>
<a href="#">Second Level Item</a>
</li>
<li>
<a href="#">Third Level <span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li>
<a href="#">Third Level Item</a>
</li>
<li>
<a href="#">Third Level Item</a>
</li>
<li>
<a href="#">Third Level Item</a>
</li>
<li>
<a href="#">Third Level Item</a>
</li>
</ul>
<!-- /.nav-third-level -->
<!-- </li>
</ul>
<!-- /.nav-second-level -->
<!--</li>-->
<li>
<a href="#"><i class="fa fa-gears fa-fw"></i>Amministrazione<span class="fa arrow"></span></a>
<ul class="nav nav-second-level">
<li>
<a class="active" href="#">Utenti</a>
</li>
<li>
<a class="active" href="/admin/group/new">Gruppi</a>
</li>
<li>
<a class="active" href="/admin/permesso/new">Permessi</a>
</li>
<li>
<a class="active" href="/admin/permesso/assign">Assegna Permessi ai gruppi</a>
</li>
<li>
<a href="#">Login Page</a>
</li>

View File

@ -1,54 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<title>Laravel Fullcalender Tutorial Tutorial - ItSolutionStuff.com</title>
@extends('admin')
@section('head_additional')
<meta name="csrf-token" content="{{ csrf_token() }}">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
<!-- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" /> -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css" />
</head>
<body>
@endsection
<div class="container">
<h1>Laravel FullCalender Tutorial Example - ItSolutionStuff.com</h1>
@section('content')
<!-- <div class="container"> -->
<div class="row">
<div class="col">
<h1>Calendario</h1>
<div id='calendar'></div>
</div>
</div>
<!-- </div> -->
@endsection
@section('script')
<script>
$(document).ready(function () {
var SITEURL = "{{ url('/') }}";
var SITEURL = "{{ url('/admin/') }}";
@ -68,7 +52,7 @@ var calendar = $('#calendar').fullCalendar({
editable: true,
events: SITEURL + "/fullcalender",
events: SITEURL + "/fullcalendar",
displayEventTime: false,
@ -104,7 +88,7 @@ var calendar = $('#calendar').fullCalendar({
$.ajax({
url: SITEURL + "/fullcalenderAjax",
url: SITEURL + "/fullcalendar",
data: {
@ -164,7 +148,7 @@ var calendar = $('#calendar').fullCalendar({
$.ajax({
url: SITEURL + '/fullcalenderAjax',
url: SITEURL + '/fullcalendar',
data: {
@ -202,7 +186,7 @@ var calendar = $('#calendar').fullCalendar({
type: "POST",
url: SITEURL + '/fullcalenderAjax',
url: SITEURL + '/fullcalendar',
data: {
@ -245,9 +229,4 @@ function displayMessage(message) {
</script>
</body>
</html>
@endsection

View File

@ -0,0 +1,44 @@
@extends('admin')
@section('content')
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Assegnazione Permessi</h1>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Assegnazione dei permessi ai gruppi
</div>
<div class="panel-body">
<form action="" method="POST">
@csrf
<div class="mb-3">
<label for="permesso" class="form-label">Permesso:</label>
<select name="permesso" id="permesso">
@foreach($permessi as $permesso)
<option value="{{ $permesso->name; }}">{{ $permesso->name; }}</option>
@endforeach
</select>
</div>
<div class="mb-3">
<label for="gruppo" class="form-label">Gruppo:</label>
<select name="gruppo" id="gruppo">
@foreach($gruppi as $gruppo)
<option value="{{ $gruppo->name; }}">{{ $gruppo->name; }}</option>
@endforeach
</select>
</div>
<input type="submit" value="submit">
</form>
</div>
</div>
</div>
</div>
@endsection

View File

@ -0,0 +1,67 @@
@extends('admin')
@section('content')
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Gruppi</h1>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Inserimento dei gruppi
</div>
<div class="panel-body">
<form action="" method="POST">
@csrf
<div class="mb-3">
<label for="gruppo" class="form-label">Gruppo:</label>
<input type="text" class="form-control" name="gruppo" id="gruppo"/>
</div>
<div class="mb-3">
<label for="descrizione" class="form-label">Descrizione:</label>
<textarea name="descrizione" class="form-control" id="descrizione"></textarea>
</div>
<input type="submit" value="submit">
</form>
</div>
</div>
<div class="panel-heading">
Gruppi inseriti
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-striped table-bordered table-hover" id="tab_gruppi">
<thead>
<tr>
<th>Gruppo</th>
<th>Descrizione</th>
</tr>
</thead>
<tbody>
@foreach($gruppi as $gruppo)
<tr>
<td>{{ $gruppo->name ?? ''; }}</td>
<td>{{ $gruppo->description ?? ''; }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@endsection
@section('script')
<script>
$(document).ready(function() {
$('#tab_gruppi').DataTable({
responsive: true
});
});
</script>
@endsection

View File

@ -0,0 +1,67 @@
@extends('admin')
@section('content')
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Permessi</h1>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Inserimento dei permessi
</div>
<div class="panel-body">
<form action="" method="POST">
@csrf
<div class="mb-3">
<label for="permesso" class="form-label">Permesso:</label>
<input type="text" class="form-control" name="permesso" id="permesso"/>
</div>
<div class="mb-3">
<label for="descrizione" class="form-label">Descrizione:</label>
<textarea name="descrizione" class="form-control" id="descrizione"></textarea>
</div>
<input type="submit" value="submit">
</form>
</div>
</div>
<div class="panel-heading">
Permessi inseriti
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-striped table-bordered table-hover" id="tab_permessi">
<thead>
<tr>
<th>Permesso</th>
<th>Descrizione</th>
</tr>
</thead>
<tbody>
@foreach($permessi as $permesso)
<tr>
<td>{{ $permesso->name ?? ''; }}</td>
<td>{{ $permesso->description ?? ''; }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@endsection
@section('script')
<script>
$(document).ready(function() {
$('#tab_permessi').DataTable({
responsive: true
});
});
</script>
@endsection

View File

@ -12,6 +12,7 @@ use App\Http\Controllers\TagController;
use App\Http\Controllers\FullCalenderController;
use App\Http\Controllers\AutoController;
use App\Http\Controllers\AnagraficaController;
use App\Http\Controllers\Utenti;
/*
|--------------------------------------------------------------------------
| Web Routes
@ -92,10 +93,16 @@ Route::get('/', [MovimentiController::class,'dashboard']);
Route::get('contatti/addOther', [AnagraficaController::class, 'insOtherContact']);
Route::post('contatti/addOther', [AnagraficaController::class, 'saveOtherContact']);
Route::get('group/new', [Utenti::class, 'nuovoGruppo']);
Route::post('group/new', [Utenti::class, 'saveNuovoGruppo']);
Route::get('permesso/new', [Utenti::class, 'nuovoPermesso']);
Route::post('permesso/new', [Utenti::class, 'saveNuovoPermesso']);
Route::get('permesso/assign', [Utenti::class, 'vw_assignToGroup']);
Route::post('permesso/assign', [Utenti::class, 'assignPermissionToGroup']);
/// TEST routes
Route::get('fullcalender', [FullCalenderController::class, 'index']);
Route::post('fullcalenderAjax', [FullCalenderController::class, 'ajax']);
Route::get('fullcalendar', [FullCalenderController::class, 'index']);
Route::post('fullcalendar', [FullCalenderController::class, 'ajax']);
Route::get('condominio',[CondominioController::class,'testPdf']);