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); } // Create a folder in Nextcloud // $response = NextcloudHelper::createUser(env('NEXT_CLOUD_URL'), env('NEXT_CLOUD_USERNAME'), env('NEXT_CLOUD_PASSWORD'), $request->username, $request->password, $request->name, $request->email); // if ($response['success']) { // session()->flash('success', __('Admin has been created.')); // return redirect()->route('admin.admins.index'); // } else { // session()->flash('error', $response['message']); // return redirect()->route('admin.admins.index'); // } 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 expense($user_id) { $formUpCountry = FormUpCountry::where('user_id', $user_id)->get(); $formEntertaimentPresentation = FormEntertaimentPresentation::where('user_id', $user_id)->get(); $formVehicleRunningCost = FormVehicleRunningCost::where('user_id', $user_id)->get(); $formOthers = FormOthers::where('user_id', $user_id)->get(); $formMeetingSeminar = FormMeetingSeminar::where('user_id', $user_id)->get(); // Combine all forms into a single array with keys for each form type $forms = [ 'form_up_country' => $formUpCountry, 'form_entertainment_presentation' => $formEntertaimentPresentation, 'form_vehicle_running_cost' => $formVehicleRunningCost, 'form_others' => $formOthers, 'form_meeting_seminar' => $formMeetingSeminar, ]; // Pass the forms and page information to the view return view('backend.pages.admins.expense', [ 'pageInfo' => [ 'title' => 'Form Management', ], 'forms' => $forms, ]); } 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'); } }