Files
gitea-mms 69ce876138 feat(admin): Benutzerverwaltung mit CRUD und Rollenzuweisung
- 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
2026-06-27 17:24:49 +02:00

68 lines
3.3 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">Neuer Benutzer</h2>
</div>
</x-slot>
<div class="py-12">
<div class="max-w-2xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white shadow-sm sm:rounded-lg p-6">
<form method="POST" action="{{ route('admin.users.store') }}" class="space-y-6">
@csrf
{{-- 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') }}" 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') }}" required />
<x-input-error :messages="$errors->get('email')" class="mt-2" />
</div>
{{-- Passwort --}}
<div>
<x-input-label for="password" value="Passwort" />
<x-text-input id="password" name="password" type="password" class="mt-1 block w-full" required />
<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">
<option value=""> Bitte wählen </option>
@foreach($roles as $role)
<option value="{{ $role->name }}" {{ old('role') === $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>Benutzer anlegen</x-primary-button>
</div>
</form>
</div>
</div>
</div>
</x-app-layout>