232 lines
7.0 KiB
PHP
232 lines
7.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Spatie\Permission\Models\Role;
|
|
use Spatie\Permission\Models\Permission;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use App\Models\User;
|
|
use PDF;
|
|
|
|
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')->get();
|
|
$allroles = Role::all()->pluck('name');
|
|
// $user = Auth::user();
|
|
// $user->assignRole('admin');
|
|
return view('pengurusanpengguna.index',compact('alluser','allroles'));
|
|
}
|
|
|
|
public function show(Request $request, $userid)
|
|
{
|
|
// dd($userid);
|
|
$user = User::where('id','=',$userid)->with('roles')->first();
|
|
$userroles = $user->getRoleNames()->toArray();
|
|
|
|
$allroles = Role::all()->pluck('name');
|
|
|
|
return view('pengurusanpengguna.show',compact('user','allroles','userroles'));
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
|
|
$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);
|
|
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 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();
|
|
}
|
|
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');
|
|
}
|
|
}
|
|
|
|
}
|
|
|