e29a5891c8
Reviewed-on: #5 Co-authored-by: ISMAIL MASSERAN <ismail@koppkb.com> Co-committed-by: ISMAIL MASSERAN <ismail@koppkb.com>
370 lines
12 KiB
PHP
370 lines
12 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Cawangan;
|
|
use App\Models\User;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Validator;
|
|
use PDF;
|
|
use Spatie\Permission\Models\Permission;
|
|
use Spatie\Permission\Models\Role;
|
|
|
|
class PenggunaController extends Controller
|
|
{
|
|
/**
|
|
* Create a new controller instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
$this->middleware('auth');
|
|
}
|
|
|
|
/**
|
|
* Show the application dashboard.
|
|
*
|
|
* @return \Illuminate\Contracts\Support\Renderable
|
|
*/
|
|
public function index()
|
|
{
|
|
// $alluser = User::all();
|
|
$alluser = User::with('roles', 'cawangan')->whereHas('roles', function ($q) {
|
|
$q->where('id', '!=', 8);
|
|
})
|
|
->orderBy('name', 'ASC')
|
|
->get();
|
|
// dd($alluser);
|
|
$allroles = Role::all();
|
|
$allRolesPluck = $allroles->pluck('name');
|
|
$caw = Cawangan::all();
|
|
|
|
// $user = User::with('roles')->first();
|
|
// // dd($user);
|
|
// $userroles = $user->getRoleNames()->toArray();
|
|
// $user = Auth::user();
|
|
// $user->assignRole('admin');
|
|
return view('pengurusanpengguna.index', compact('alluser', 'allroles', 'caw', 'allRolesPluck'));
|
|
}
|
|
|
|
public function show(Request $request, $userid)
|
|
{
|
|
// dd($userid);
|
|
$user = User::where('id', '=', $userid)->with('roles', 'cawangan')->first();
|
|
$userroles = $user->getRoleNames()->toArray();
|
|
$caw = Cawangan::all();
|
|
$allroles = Role::all()->pluck('name');
|
|
|
|
// $active = User::where('id','=',$userid)->update('status', 1);
|
|
|
|
return view('pengurusanpengguna.show', compact('user', 'allroles', 'userroles', 'caw'));
|
|
}
|
|
|
|
public function storepengguna(Request $request)
|
|
{
|
|
$currentdate = Carbon::now();
|
|
$currentdate = $currentdate->toDateTimeString();
|
|
// dd($request->all());
|
|
$validator = Validator::make($request->all(), [
|
|
'email' => 'required|string|unique:users|email',
|
|
'username' => 'required|string|unique:users',
|
|
]);
|
|
|
|
// if ($validator->fails()) {
|
|
// $errors = [
|
|
// 'success' => "error",
|
|
// 'message' => $validator->errors()
|
|
|
|
// ];
|
|
|
|
// return redirect()->route('pengguna.index')
|
|
// ->with('message', 'Sila Masukkan Email Yang Sah'); }
|
|
|
|
// check if user already existed
|
|
$check = User::where('username', $request->username)
|
|
->orWhere('email', $request->email)
|
|
->first();
|
|
|
|
if ($check) {
|
|
return redirect()->route('pengguna.index')->with('failed', 'Maaf, Nama Pengguna / Emel Berikut Telah Wujud !');
|
|
} else {
|
|
|
|
$allroles = Role::all()->pluck('name');
|
|
$arraytaraf = [];
|
|
$counttaraf = 0;
|
|
foreach ($allroles as $index => $taraf) {
|
|
$req = 'taraf'.$taraf;
|
|
if ($request->$req) {
|
|
$counttaraf++;
|
|
array_push($arraytaraf, $taraf);
|
|
}
|
|
}
|
|
if ($counttaraf < 1) {
|
|
return redirect()->route('pengguna.index')->with('failed', 'Maaf, Taraf Tidak Dipilih');
|
|
}
|
|
|
|
$user = new User;
|
|
$user->name = $request->name;
|
|
$user->username = $request->username;
|
|
$user->kodcaw = $request->caw;
|
|
$user->notelbimbit = $request->notelbimbit;
|
|
$user->status = 'active';
|
|
$user->t_daftar = $currentdate;
|
|
$user->email = $request->email;
|
|
$user->email_verified_at = $currentdate;
|
|
$user->password = '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'; // password
|
|
if ($arraytaraf[0] == 'ajk') {
|
|
$user->user_type = 3;
|
|
} else {
|
|
$user->user_type = 1;
|
|
}
|
|
|
|
$user->save();
|
|
|
|
$user->syncRoles($arraytaraf);
|
|
|
|
return redirect()->route('pengguna.index')
|
|
->with('success', 'Pengguna Berjaya Disimpan');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
// dd($request->all());
|
|
$currentdate = Carbon::now();
|
|
$currentdate = $currentdate->toDateTimeString();
|
|
|
|
$user = User::where('id', '=', $request->userid)->first();
|
|
$allroles = Role::all()->pluck('name');
|
|
// dd($user);
|
|
$arraytaraf = [];
|
|
foreach ($allroles as $index => $taraf) {
|
|
$req = 'taraf'.$taraf;
|
|
// dd($req);
|
|
if ($request->$req) {
|
|
array_push($arraytaraf, $taraf);
|
|
}
|
|
}
|
|
// dd($arraytaraf);
|
|
$user->syncRoles($arraytaraf);
|
|
|
|
if ($request->status == true) {
|
|
$status = 'active';
|
|
} elseif ($request->statusban == true) {
|
|
$status = 'banned';
|
|
}
|
|
// else if(!($request->has('status'))){
|
|
// $status = 'active';
|
|
// }
|
|
else {
|
|
$status = 'inactive';
|
|
}
|
|
|
|
$user = User::where('id', '=', $request->userid)->first();
|
|
// dd($request->caw);
|
|
$user->name = $request->name;
|
|
$user->email = $request->emel;
|
|
$user->kodcaw = $request->caw;
|
|
$user->username = $request->username;
|
|
$user->notelbimbit = $request->notelbimbit;
|
|
// $user->nokp = $request->nokp;
|
|
$user->updated_at = $currentdate;
|
|
$user->status = $status;
|
|
|
|
$user->save();
|
|
|
|
return redirect()->route('pengguna.index')
|
|
->with('success', 'Kemaskini Berjaya');
|
|
}
|
|
|
|
public function delete($userid)
|
|
{
|
|
$user = User::where('id', '=', $userid)->first();
|
|
$allrolesuser = $user->getRoleNames();
|
|
foreach ($allrolesuser as $index => $role) {
|
|
$user->removeRole($role);
|
|
}
|
|
$user->delete();
|
|
|
|
return redirect()->route('pengguna.index')
|
|
->with('success', 'Padam Pengguna Berjaya');
|
|
}
|
|
|
|
public function taraf() // taraf = roles in db
|
|
{
|
|
$arrayrole = [];
|
|
$arraypermision = [];
|
|
$roles = Role::all();
|
|
$permission = Permission::all();
|
|
|
|
return view('pengurusanpengguna.taraf', compact('roles', 'permission'));
|
|
}
|
|
|
|
public function showtaraf($tarafid)
|
|
{
|
|
// dd($tarafname->permissions);
|
|
$roles = Role::where('id', '=', $tarafid)->first();
|
|
$selectedroles = $roles->name;
|
|
$allpermission = Permission::all()->pluck('name');
|
|
$userpermission = $roles->permissions->pluck('name')->toArray();
|
|
|
|
// dd($roles->permissions->pluck('name'));
|
|
return view('pengurusanpengguna.showtaraf', compact('selectedroles', 'allpermission', 'userpermission'));
|
|
}
|
|
|
|
public function storetaraf(Request $request) // taraf = roles in db
|
|
{
|
|
$role = Role::where('name', '=', $request->namataraf)->first();
|
|
$allpermission = Permission::all()->pluck('name');
|
|
|
|
$arraypermission = [];
|
|
foreach ($allpermission as $index => $roles) {
|
|
$req = 'role'.$roles;
|
|
// dd($req);
|
|
if ($request->$req) {
|
|
array_push($arraypermission, $roles);
|
|
}
|
|
}
|
|
// dd($arraypermission);
|
|
$role->syncPermissions($arraypermission);
|
|
|
|
// $user = Auth::user();
|
|
// $user->assignRole('admin');
|
|
return redirect()->route('pengguna.taraf')
|
|
->with('success', 'Kemaskini Berjaya');
|
|
}
|
|
|
|
public function deletetaraf($tarafid)
|
|
{
|
|
$taraf = Role::where('id', '=', $tarafid)->first();
|
|
$taraf->delete();
|
|
|
|
return redirect()->route('pengguna.taraf')
|
|
->with('success', 'Padam Taraf Berjaya');
|
|
}
|
|
|
|
public function roles() // roles = permissions in db
|
|
{
|
|
$allpermission = Permission::all();
|
|
|
|
// $user = Auth::user();
|
|
// $user->assignRole('admin');
|
|
return view('pengurusanpengguna.roles', compact('allpermission'));
|
|
}
|
|
|
|
public function newrole(Request $request)
|
|
{
|
|
// dd($request->all());
|
|
Permission::create([
|
|
'name' => $request->name,
|
|
'description' => $request->keterangan,
|
|
]);
|
|
|
|
return redirect()->route('pengguna.roles')
|
|
->with('success', 'Role berjaya disimpan');
|
|
}
|
|
|
|
public function showrole($roleid) // roles = permissions in db
|
|
{
|
|
$permission = Permission::where('id', '=', $roleid)->first();
|
|
|
|
// $user = Auth::user();
|
|
// $user->assignRole('admin');
|
|
return view('pengurusanpengguna.showrole', compact('permission'));
|
|
}
|
|
|
|
public function storerole(Request $request)
|
|
{
|
|
$role = Permission::where('id', '=', $request->idrole)->first();
|
|
|
|
return redirect()->route('pengguna.roles')
|
|
->with('success', 'Kemaskini Berjaya');
|
|
}
|
|
|
|
public function updateroles(Request $request)
|
|
{
|
|
$user = User::where('id', '=', $request->id);
|
|
$user->syncPermissions($request->arrayroles);
|
|
|
|
// $user = Auth::user();
|
|
// $user->assignRole('admin');
|
|
return redirect()->route('pengguna.roles')
|
|
->with('success', 'Tukar Roles Berjaya');
|
|
}
|
|
|
|
public function deleterole($roleid)
|
|
{
|
|
$role = Permission::where('id', '=', $roleid)->first();
|
|
$role->delete();
|
|
|
|
return redirect()->route('pengguna.roles')
|
|
->with('success', 'Padam Roles Berjaya');
|
|
}
|
|
|
|
public function export(Request $request)
|
|
{
|
|
if ($request->type == 'Role' || $request->type == 'Permission') {
|
|
$model_name = '\\Spatie\\Permission\\Models\\'.$request->type;
|
|
} else {
|
|
$model_name = '\\App\\Models\\'.$request->type;
|
|
}
|
|
|
|
// dd($request->checkboxdata);
|
|
if ($request->checkboxdata) {
|
|
if ($request->type == 'User') {
|
|
$data = $model_name::whereIn('id', $request->checkboxdata)->with('roles')->get();
|
|
|
|
} else {
|
|
$data = $model_name::whereIn('id', $request->checkboxdata)->get();
|
|
}
|
|
} else {
|
|
if ($request->type == 'User') {
|
|
// $data = $model_name::with('roles')->get();
|
|
$data = User::with('roles', 'cawangan')->whereHas('roles', function ($q) {
|
|
$q->where('id', '!=', 8);
|
|
})
|
|
->get();
|
|
|
|
} else {
|
|
$data = $model_name::all();
|
|
}
|
|
|
|
}
|
|
// return view('pdf.edit',compact('data')); //page for editing
|
|
// dd($data);
|
|
if ($request->type == 'Role') {
|
|
$pdf = PDF::loadView('pdf.tarafpdf', compact('data'));
|
|
|
|
return $pdf->download('Taraf.pdf');
|
|
} elseif ($request->type == 'User') {
|
|
// return view('pdf.edit',compact('data')); //page for editing
|
|
$pdf = PDF::loadView('pdf.penggunapdf', compact('data'));
|
|
|
|
return $pdf->download('Pengguna.pdf');
|
|
} elseif ($request->type == 'Permission') {
|
|
return view('pdf.edit', compact('data')); // page for editing
|
|
// $pdf = PDF::loadView('pdf.rolespdf',compact('data'));
|
|
// return $pdf->download('Roles.pdf');
|
|
}
|
|
}
|
|
|
|
public function listajk()
|
|
{
|
|
$alluser = User::with('roles', 'cawangan')->whereHas('roles', function ($q) {
|
|
$q->where('name', '=', 'ajk');
|
|
})
|
|
->orderBy('name', 'ASC')
|
|
->get();
|
|
$allroles = Role::all();
|
|
$allRolesPluck = $allroles->pluck('name');
|
|
$caw = Cawangan::all();
|
|
|
|
return view('parameter.listajk', compact('alluser', 'allroles', 'caw', 'allRolesPluck'));
|
|
}
|
|
}
|