orderBy('name')->get(); return view('admin.admins.index', compact('admins')); } public function create() { return view('admin.admins.form', ['admin' => null]); } public function store(Request $request) { $data = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email', 'role' => 'required|in:admin,super_admin', 'password' => 'required|min:8|confirmed', ]); User::create([ 'name' => $data['name'], 'email' => $data['email'], 'role' => $data['role'], 'password' => Hash::make($data['password']), 'approved' => true, 'email_verified_at' => now(), ]); return redirect()->route('admin.admins.index')->with('success', 'Admin-Benutzer angelegt.'); } public function edit(User $admin) { abort_if(! $admin->isAdmin(), 404); return view('admin.admins.form', compact('admin')); } public function update(Request $request, User $admin) { abort_if(! $admin->isAdmin(), 404); $data = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email,' . $admin->id, 'role' => 'required|in:admin,super_admin', 'password' => 'nullable|min:8|confirmed', ]); $admin->name = $data['name']; $admin->email = $data['email']; $admin->role = $data['role']; if (!empty($data['password'])) { $admin->password = Hash::make($data['password']); } $admin->save(); return redirect()->route('admin.admins.index')->with('success', 'Admin-Benutzer aktualisiert.'); } public function destroy(User $admin) { abort_if(! $admin->isAdmin(), 404); abort_if($admin->id === auth()->id(), 403, 'Sie können sich nicht selbst löschen.'); $admin->delete(); return back()->with('success', 'Admin-Benutzer gelöscht.'); } }