278 lines
8.5 KiB
PHP
278 lines
8.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Models\User;
|
|
use App\Models\Role;
|
|
use App\Models\Pengaturan;
|
|
use App\Models\Roless;
|
|
use App\Models\RoleUser;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Str;
|
|
use Hash;
|
|
use illuminate\Support\Facades\DB;
|
|
use PhpParser\Node\Expr\Exit_;
|
|
|
|
class MstPenggunaController extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->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!');
|
|
}
|
|
}
|