Files
lelong/app/Http/Controllers/PenggunaController.php
T
2022-04-27 10:25:02 +08:00

320 lines
9.7 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\Validator;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
use Carbon\Carbon;
use PDF;
use App\Models\Cawangan;
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');
$caw = Cawangan::all();
$user = User::with('roles')->first();
$userroles = $user->getRoleNames()->toArray();
// $user = Auth::user();
// $user->assignRole('admin');
return view('pengurusanpengguna.index',compact('alluser','allroles','caw','user','userroles'));
}
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');
// $active = User::where('id','=',$userid)->update('status', 1);
return view('pengurusanpengguna.show',compact('user','allroles','userroles'));
}
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'); }
$user = new User;
$user->name = $request->name;
$user->username = $request->username;
$user->kodcaw = $request->caw;
$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
$user->user_type = 1;
// $user->user_type = 1;
$user->save();
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';
}
else if($request->statusban == true)
{
$status = 'banned';
}
// else if(!($request->has('status'))){
// $status = 'active';
// }
else
{
$status = 'inactive';
}
$user = User::where('id','=',$request->userid)->first();
// dd($user);
$user->email = $request->emel;
$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();
}
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');
}
}
}