diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 7677ad1..1963e99 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -85,4 +85,48 @@ class SettingsController extends Controller return redirect()->route('settings.index')->with('status', 'Uprawnienia ról zostały zaktualizowane.'); } + + public function storeRole(Request $request) + { + $validated = $request->validate([ + 'name' => ['required', 'string', 'max:255', 'unique:roles,name,NULL,id,guard_name,web'], + ], [ + 'name.required' => 'Nazwa roli jest wymagana.', + 'name.unique' => 'Taka rola już istnieje.', + ]); + + Role::create([ + 'name' => trim($validated['name']), + 'guard_name' => 'web', + ]); + + return redirect()->route('settings.index')->with('status', 'Nowa rola została dodana.'); + } + + public function updateRole(Request $request, Role $role) + { + $validated = $request->validate([ + 'name' => ['required', 'string', 'max:255', 'unique:roles,name,' . $role->id . ',id,guard_name,' . $role->guard_name], + ], [ + 'name.required' => 'Nazwa roli jest wymagana.', + 'name.unique' => 'Taka rola już istnieje.', + ]); + + $role->update([ + 'name' => trim($validated['name']), + ]); + + return redirect()->route('settings.index')->with('status', 'Rola została zaktualizowana.'); + } + + public function destroyRole(Role $role) + { + if ($role->users()->exists()) { + return redirect()->route('settings.index')->with('error', 'Nie można usunąć roli przypisanej do użytkowników.'); + } + + $role->delete(); + + return redirect()->route('settings.index')->with('status', 'Rola została usunięta.'); + } } diff --git a/resources/views/settings/index.blade.php b/resources/views/settings/index.blade.php index 85d9a5f..10f49f3 100644 --- a/resources/views/settings/index.blade.php +++ b/resources/views/settings/index.blade.php @@ -20,6 +20,87 @@ @endif
| Nazwa | +Użytkownicy | +Akcje | +
|---|---|---|
| {{ $role->name }} | +{{ $role->users()->count() }} | +
+
+
+
+
+
+
+
+
+ |
+
| Brak zdefiniowanych ról. | +||