69ce876138
- Admin-Modul unter /admin/users (nur role:admin) - Benutzer anlegen, bearbeiten, löschen - Rollenzuweisung im Formular - Navigationslink für Admins - CHANGELOG v0.3.0 Version: 0.3.0
91 lines
4.5 KiB
PHP
91 lines
4.5 KiB
PHP
<x-app-layout>
|
|
<x-slot name="header">
|
|
<div class="flex items-center space-x-2">
|
|
<a href="{{ route('admin.users.index') }}" class="text-gray-500 hover:text-gray-700">Benutzerverwaltung</a>
|
|
<span class="text-gray-400">/</span>
|
|
<h2 class="font-semibold text-xl text-gray-800 leading-tight">{{ $user->name }} bearbeiten</h2>
|
|
</div>
|
|
</x-slot>
|
|
|
|
<div class="py-12">
|
|
<div class="max-w-2xl mx-auto sm:px-6 lg:px-8 space-y-6">
|
|
|
|
{{-- Stammdaten & Rolle --}}
|
|
<div class="bg-white shadow-sm sm:rounded-lg p-6">
|
|
<h3 class="text-lg font-medium text-gray-900 mb-4">Stammdaten</h3>
|
|
|
|
<form method="POST" action="{{ route('admin.users.update', $user) }}" class="space-y-6">
|
|
@csrf
|
|
@method('PUT')
|
|
|
|
{{-- Name --}}
|
|
<div>
|
|
<x-input-label for="name" value="Name" />
|
|
<x-text-input id="name" name="name" type="text" class="mt-1 block w-full"
|
|
value="{{ old('name', $user->name) }}" required autofocus />
|
|
<x-input-error :messages="$errors->get('name')" class="mt-2" />
|
|
</div>
|
|
|
|
{{-- E-Mail --}}
|
|
<div>
|
|
<x-input-label for="email" value="E-Mail-Adresse" />
|
|
<x-text-input id="email" name="email" type="email" class="mt-1 block w-full"
|
|
value="{{ old('email', $user->email) }}" required />
|
|
<x-input-error :messages="$errors->get('email')" class="mt-2" />
|
|
</div>
|
|
|
|
{{-- Neues Passwort --}}
|
|
<div>
|
|
<x-input-label for="password" value="Neues Passwort (leer lassen = unverändert)" />
|
|
<x-text-input id="password" name="password" type="password" class="mt-1 block w-full" />
|
|
<p class="mt-1 text-xs text-gray-500">Mindestens 8 Zeichen, Groß- und Kleinbuchstaben, eine Zahl.</p>
|
|
<x-input-error :messages="$errors->get('password')" class="mt-2" />
|
|
</div>
|
|
|
|
{{-- Rolle --}}
|
|
<div>
|
|
<x-input-label for="role" value="Rolle" />
|
|
<select id="role" name="role" required
|
|
class="mt-1 block w-full border-gray-300 rounded-md shadow-sm focus:ring-indigo-500 focus:border-indigo-500 text-sm">
|
|
@foreach($roles as $role)
|
|
<option value="{{ $role->name }}"
|
|
{{ $user->hasRole($role->name) ? 'selected' : '' }}>
|
|
{{ ucfirst($role->name) }}
|
|
</option>
|
|
@endforeach
|
|
</select>
|
|
<x-input-error :messages="$errors->get('role')" class="mt-2" />
|
|
</div>
|
|
|
|
{{-- Buttons --}}
|
|
<div class="flex items-center justify-between pt-2">
|
|
<a href="{{ route('admin.users.index') }}"
|
|
class="text-sm text-gray-600 hover:text-gray-900">Abbrechen</a>
|
|
<x-primary-button>Änderungen speichern</x-primary-button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
{{-- Gefahrenzone --}}
|
|
@if($user->id !== auth()->id())
|
|
<div class="bg-white shadow-sm sm:rounded-lg p-6 border border-red-200">
|
|
<h3 class="text-lg font-medium text-red-700 mb-2">Gefahrenzone</h3>
|
|
<p class="text-sm text-gray-600 mb-4">
|
|
Dieser Benutzer wird dauerhaft gelöscht und kann nicht wiederhergestellt werden.
|
|
</p>
|
|
<form method="POST" action="{{ route('admin.users.destroy', $user) }}"
|
|
onsubmit="return confirm('Benutzer „{{ $user->name }}" wirklich löschen?')">
|
|
@csrf
|
|
@method('DELETE')
|
|
<button type="submit"
|
|
class="inline-flex items-center px-4 py-2 bg-red-600 text-white text-sm font-medium rounded-md hover:bg-red-700 transition">
|
|
Benutzer löschen
|
|
</button>
|
|
</form>
|
|
</div>
|
|
@endif
|
|
|
|
</div>
|
|
</div>
|
|
</x-app-layout>
|