Files
sidata/app/Http/Controllers/Admin/MstPenggunaController.php
T

189 lines
5.7 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Models\User;
use App\Models\Role;
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;
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);
return view('admin.mst_pengguna.index',compact('data'))
->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'
]);
$requestAll = $request->all();
$requestAll["password"] = \Hash::make($requestAll["password"]);
$requestAll["role_name"] = $requestAll["opt_role"];
$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");
return view('admin.mst_pengguna.edit',compact('user'));
}
public function update(Request $request, User $user)
{
$request->validate([
'name' => 'required',
'opt_role' => 'required'
]);
$requestAll = $request->all();
$requestAll["role_name"] = $requestAll["opt_role"];
$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 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!');
}
}