checkAuthorization(auth()->user(), ['admin.view']); $pageInfo = [ 'title' => 'User Access List', 'sub_title' => 'List User Access System', 'path' => url()->current() ]; return view('backend.pages.admins.index', [ 'admins' => Admin::all(), 'pageInfo' => $pageInfo ]); } public function create(): Renderable { $this->checkAuthorization(auth()->user(), ['admin.create']); $pageInfo = [ 'title' => 'Create User Access', 'sub_title' => 'Create new User', 'path' => url()->current() ]; return view('backend.pages.admins.create', [ 'roles' => Role::all(), 'pageInfo' => $pageInfo ]); } public function store(AdminRequest $request): RedirectResponse { $this->checkAuthorization(auth()->user(), ['admin.create']); $admin = new Admin(); $admin->name = $request->name; $admin->password = Hash::make($request->password); $admin->username = $request->username; $admin->email = $request->email; $admin->phone = $request->phone; $admin->save(); if ($request->roles) { $admin->assignRole($request->roles); } session()->flash('success', __('Admin has been created.')); return redirect()->route('admin.admins.index'); } public function edit(int $id): Renderable { $this->checkAuthorization(auth()->user(), ['admin.edit']); $pageInfo = [ 'title' => 'Edit User Access', 'sub_title' => 'Update User Access data', 'path' => url()->current() ]; $admin = Admin::findOrFail($id); return view('backend.pages.admins.edit', [ 'admin' => $admin, 'roles' => Role::all(), 'pageInfo' => $pageInfo ]); } public function update(AdminRequest $request, int $id): RedirectResponse { $this->checkAuthorization(auth()->user(), ['admin.edit']); $admin = Admin::findOrFail($id); $admin->name = $request->name; $admin->email = $request->email; $admin->username = $request->username; $admin->phone = $request->phone; if ($request->password) { $admin->password = Hash::make($request->password); } $admin->save(); $admin->roles()->detach(); if ($request->roles) { $admin->assignRole($request->roles); } session()->flash('success', 'Admin has been updated.'); return redirect()->route('admin.admins.index'); } public function destroy(int $id): RedirectResponse { $this->checkAuthorization(auth()->user(), ['admin.delete']); $admin = Admin::findOrFail($id); $admin->delete(); session()->flash('success', 'Admin has been deleted.'); return redirect()->route('admin.admins.index'); } }