siteTitle = "Data Pengguna"; parent::__construct(); } public function index() { $data = null; // $data = User::where('role_name', "<>", "superadmin")->latest()->paginate(10); $pengaturan = Pengaturan::where("id", 1)->first(); return view('admin.mst_pengguna.index', compact('data', 'pengaturan')) ->with('i', (request()->input('page', 1) - 1) * 10); } public function create() { $this->setSubtitle("Tambah Data"); return view('admin.mst_pengguna.create'); } public function store(Request $request) { $request->validate([ 'name' => 'required', 'nrk' => 'required', 'password' => 'required', 'opt_role' => 'required', 'wilayah' => 'required' ]); $requestAll = $request->all(); $requestAll["password"] = \Hash::make($requestAll["password"]); $requestAll["role_name"] = $requestAll["opt_role"]; $requestAll["wilayah"] = $requestAll["wilayah"]; $user = User::create($requestAll); $user->roles()->detach(); //$user->removeRole($requestAll["opt_role"]); $user->assignRole($requestAll["opt_role"]); app()->make(\Spatie\Permission\PermissionRegistrar::class)->forgetCachedPermissions(); return redirect()->route('users.index') ->with('success', 'User berhasil dibuat.'); } public function show(User $user) { $user = User::with("roleUser.role")->where("id", $user->id)->first(); $this->setSubtitle("Detail Data"); return view('admin.mst_pengguna.show', compact('user')); } public function edit(User $user) { $this->setSubtitle("Ubah Data"); $baseUrl = url('/admin/users'); return view('admin.mst_pengguna.edit', compact('user')); } public function update(Request $request, User $user) { $request->validate([ 'name' => 'required', 'opt_role' => 'required', 'wilayah' => 'required', ]); $requestAll = $request->all(); $requestAll["role_name"] = $requestAll["opt_role"]; $requestAll["wilayah"] = $requestAll["wilayah"]; //$sqlStr = " WHERE tahun_anggaran = " . getTA(); $user->update($requestAll); $user->roles()->detach(); // $user->removeRole($requestAll["opt_role"]); $user->assignRole($requestAll["opt_role"]); app()->make(\Spatie\Permission\PermissionRegistrar::class)->forgetCachedPermissions(); return redirect()->route('users.index') ->with('success', 'User berhasil diubah!'); } public function destroy(User $user) { $user->delete(); return redirect()->route('users.index') ->with('success', 'User berhasil dihapus!'); } public function roleList() { $mstRole = Roless::where("name", "<>", "superadmin")->select(["name", "name"])->get(); return response()->json($mstRole); } public function changePass() { return view('admin.mst_pengguna.change_password'); } public function changePassSubmit(Request $request, $userId) { $request->validate([ 'old_password' => 'required', 'new_password' => 'required', ]); $requestAll = $request->all(); $cekUser = User::find($userId); if (\Hash::check($requestAll["old_password"], $cekUser->password)) { User::where("id", $userId)->update(["password" => \Hash::make($requestAll["new_password"])]); return redirect()->route('home') ->with('success', 'Kata sandi pengguna berhasil diubah!'); } else { return redirect()->route('home') ->with('error', 'Kata sandi gagal diubah!, Kata sandi lama salah!'); } } public function datatable(Request $request) { $post = $request->all(); $offset = $post["start"]; $limit = $post["length"]; $src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]) : ""; $sqlstr = User::where('role_name', "<>", "superadmin"); $dataTotal = $sqlstr->count(); $data = $sqlstr->orderBy("role_name"); if (!empty($src)) { $data->whereRaw(" ( lower(name) like '%$src%' OR lower(nrk) like '%$src%' ) "); } $dataFilter = $data->count(); return response()->json([ "recordsTotal" => $dataTotal, "recordsFiltered" => $dataFilter, "data" => $data->skip($offset)->take($limit)->get() ]); } public function lockUploadData($userId = "", $reset = 0, Request $req) { $updateValue = [ "is_lock_upload" => $reset == 0 ? 1 : 0, "lock_upload_time" => date("Y-m-d H:i"), "lock_upload_by" => Auth::user()->id ]; if (empty($userId)) { User::query()->update($updateValue); } else { User::where(["id" => $userId])->update($updateValue); } return redirect()->route('users.index') ->with('success', 'Lock upload data sudah diubah!'); } public function lockTambahData($userId = "", $reset = 0, $check = 0, Request $req) { $updateValue = [ "lock_tambah_data" => $reset == 0 ? 1 : 0, "lock_upload_by" => Auth::user()->id ]; if (empty($userId)) { if ($check == 2) { $updateValue = [ "lock_tambah_data" => 0, ]; Pengaturan::where("id", 1)->update(["check_all_tambah" => 0]); } else { Pengaturan::where("id", 1)->update(["check_all_tambah" => 1]); } User::query()->update($updateValue); } else { User::where(["id" => $userId])->update($updateValue); } return redirect()->route('users.index') ->with('success', 'Lock Tambah data sudah diubah!'); } public function lockUbahData($userId = "", $reset = 0, $check = 0, Request $req) { $updateValue = [ "lock_ubah_data" => $reset == 0 ? 1 : 0, "lock_upload_by" => Auth::user()->id ]; if (empty($userId)) { if ($check == 2) { $updateValue = [ "lock_ubah_data" => 0, ]; Pengaturan::where("id", 1)->update(["check_all_ubah" => 0]); } else { Pengaturan::where("id", 1)->update(["check_all_ubah" => 1]); } User::query()->update($updateValue); } else { User::where(["id" => $userId])->update($updateValue); } return redirect()->route('users.index') ->with('success', 'Lock Ubah data sudah diubah!'); } public function lockHapusData($userId = "", $reset = 0, $check = 0, Request $req) { $updateValue = [ "lock_hapus_data" => $reset == 0 ? 1 : 0, "lock_upload_by" => Auth::user()->id ]; if (empty($userId)) { if ($check == 2) { $updateValue = [ "lock_hapus_data" => 0, ]; Pengaturan::where("id", 1)->update(["check_all_hapus" => 0]); } else { Pengaturan::where("id", 1)->update(["check_all_hapus" => 1]); } User::query()->update($updateValue); } else { User::where(["id" => $userId])->update($updateValue); } return redirect()->route('users.index') ->with('success', 'Lock Hapus data sudah diubah!'); } public function resetPass(User $user) { $random = Str::random(8); $updateValue = [ "f_locked" => null, // "recovery_password" => $random, "password" => Hash::make($user->nrk), "password_changed" => null, "first_login" => date("Y-m-d H:i") ]; $user->update($updateValue); return redirect()->route('users.index') ->with('success', 'Kata sandi sudah direset!'); } }