diff --git a/app/Http/Controllers/Admin/AdminController.php b/app/Http/Controllers/Admin/AdminController.php new file mode 100644 index 0000000..0105b46 --- /dev/null +++ b/app/Http/Controllers/Admin/AdminController.php @@ -0,0 +1,131 @@ +validate([ + 'email' => 'required|email|unique:admins,email', + ]); + + // 随机密码 + $password = Str::random(16); + + $admin = Admin::create([ + 'email' => $request->email, + 'password' => bcrypt($password), + ]); + + return redirect()->route('admin.admins.edit', $admin)->with('success', '管理员创建成功,密码为:' . $password . '。'); + } + + /** + * Show the form for editing the specified resource. + * + * @param Admin $admin + * + * @return View + */ + public function edit(Admin $admin): View + { + return view('admin.admins.edit', compact('admin')); + } + + /** + * Update the specified resource in storage. + * + * @param Request $request + * @param Admin $admin + * + * @return RedirectResponse + */ + public function update(Request $request, Admin $admin): RedirectResponse + { + $request->validate([ + 'email' => 'required|email|unique:admins,email,' . $admin->id, + ]); + + $msg = '管理员信息更新成功'; + + if ($request->filled('reset_password')) { + // 随机密码 + $password = Str::random(16); + + $msg .= ',新的密码为:' . $password; + + $admin->password = bcrypt($password); + } + + $msg .= '。'; + + $admin->email = $request->email; + + $admin->save(); + + return redirect()->back()->with('success', $msg); + } + + /** + * Remove the specified resource from storage. + * + * @param Admin $admin + * + * @return RedirectResponse + */ + public function destroy(Admin $admin): RedirectResponse + { + // 不能删除自己 + if ($admin->id == auth('admin')->id()) { + return redirect()->back()->with('error', '不能删除自己。'); + } + + // 不能删除最后一个管理员 + if (Admin::count() == 1) { + return redirect()->back()->with('error', '不能删除最后一个管理员。'); + } + + $admin->delete(); + + return redirect()->route('admin.admins.index')->with('success', '管理员已删除。'); + } +} diff --git a/resources/views/admin/admins/create.blade.php b/resources/views/admin/admins/create.blade.php new file mode 100644 index 0000000..7269f34 --- /dev/null +++ b/resources/views/admin/admins/create.blade.php @@ -0,0 +1,20 @@ +@extends('layouts.admin') + +@section('title', '新建管理员') + +@section('content') +
权力越大,责任越大
+ 新建管理员 +ID | +邮件 | +操作 | + + + + @foreach ($admins as $admin) +
---|---|---|
+ + {{ $admin->id }} + + | ++ {{ $admin->email }} + | ++ 编辑 + | +