瀏覽代碼

admin invalida verbale

FabioFratini 11 月之前
父節點
當前提交
40354d4537
共有 4 個文件被更改,包括 68 次插入4 次删除
  1. 18 3
      app/Http/Livewire/Report.php
  2. 10 0
      app/Models/User.php
  3. 2 0
      resources/views/components/report/modifica/header.blade.php
  4. 38 1
      routes/web.php

+ 18 - 3
app/Http/Livewire/Report.php

@@ -284,7 +284,7 @@ class Report extends Component
     public $infortunato_ospedale;
     public $cds;
     public $showModal = false;
-
+    public $isAdmin;
 
     protected $rules = [
         //'name' => 'required'
@@ -555,6 +555,7 @@ class Report extends Component
         $this->segnaletica_orizzontale = \App\Models\SegnalazioneOrizzontale::orderBy('name')->get();
         $this->allegatiType = \App\Models\AllegatiGalleryType::orderBy('name')->get();
         $this->data_polizze = 0;
+        $this->isAdmin = session('is_admin', false);
     }
 
     public function render()
@@ -630,7 +631,7 @@ class Report extends Component
 
             $record = \App\Models\Report::create($reportData);
 
-            session()->flash('success', 'Record creato');
+            session()->flash('success', 'Verbale creato');
             $this->closeModal();
             $this->edit($record->id);
         } catch (\Exception $ex) {
@@ -645,7 +646,7 @@ class Report extends Component
             \App\Models\Report::create([
                 'name' => $this->name
             ]);
-            session()->flash('success', 'Record creato');
+            session()->flash('success', 'Verbale creato');
             $this->resetFields();
             $this->add = false;
         } catch (\Exception $ex) {
@@ -653,6 +654,20 @@ class Report extends Component
         }
     }
 
+    public function invalidateVerbale()
+    {
+        try {
+            \App\Models\Report::whereId($this->dataId)->update([
+                'validated' => 0
+            ]);
+            session()->flash('success', 'Record aggiornato');
+            $this->resetFields();
+            $this->update = false;
+        } catch (\Exception $ex) {
+            session()->flash('error', 'Errore (' . $ex->getMessage() . ')');
+        }
+    }
+
     public function edit($idReport)
     {
         $this->resetFields();

+ 10 - 0
app/Models/User.php

@@ -65,5 +65,15 @@ class User extends Authenticatable
             return "";
     }
 
+    public function userGroups()
+    {
+        return $this->hasMany(UserUserGroup::class, 'user_id');
+    }
+
+    public function groups()
+    {
+        return $this->belongsToMany(UserGroup::class, 'fcf_user_user_groups', 'user_id', 'group_id');
+    }
+
 
 }

+ 2 - 0
resources/views/components/report/modifica/header.blade.php

@@ -3,6 +3,8 @@
         <div class="col d-flex align-items-center">
             @if (!$this->validated)
                 <button type="submit" class="btn btn-primary" wire:click.prevent="update(true)">Valida&nbsp;verbale</button>
+            @elseif($this->isAdmin)
+            <button type="submit" class="btn btn-primary" wire:click.prevent="invalidateVerbale()">Invalida&nbsp;verbale</button>
             @else
                 <span class="text-center w-100">VALIDATO</span>
             @endif

+ 38 - 1
routes/web.php

@@ -5,6 +5,7 @@ use Illuminate\Support\Facades\Route;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Log;
 
 
 /*
@@ -37,13 +38,49 @@ Route::post('/login', function (Request $request) {
 
     if (Auth::attempt($credentials)) {
         $request->session()->regenerate();
+        $user = Auth::user();
+        $isAdmin = false; // Default value
+
+        // Clear previous session values to avoid stale data
+        session()->forget(['user_group_id', 'user_group_name', 'is_admin']);
+
+        $userGroup = \App\Models\UserUserGroup::where('user_id', $user->id)->first();
+
+        if ($userGroup) {
+            $group = \App\Models\UserGroup::find($userGroup->group_id);
+
+            if ($group) {
+                session(['user_group_id' => $group->id]);
+                session(['user_group_name' => $group->name]);
+
+                $isAdmin = ($group->name === 'Amministrazione');
+                session(['is_admin' => $isAdmin]);
+
+                Log::info('User logged in with group', [
+                    'user_id' => $user->id,
+                    'group_id' => $group->id,
+                    'group_name' => $group->name,
+                    'isAdmin' => $isAdmin
+                ]);
+            } else {
+                Log::warning('User group_id references non-existent group', [
+                    'user_id' => $user->id,
+                    'group_id' => $userGroup->group_id
+                ]);
+            }
+        } else {
+            Log::warning('User has no group assigned', ['user_id' => $user->id]);
+            session(['is_admin' => false]);
+        }
+
         return redirect()->intended('/reports');
     }
+
+    Log::info('Failed login attempt', ['email' => $request->email]);
     return back()->withErrors([
         'message' => 'Dati di accesso errati',
     ]);
 });
-
 Route::group(['middleware' => 'auth'],function(){
 
     Route::get('/dashboard', \App\Http\Livewire\Dashboard::class);