Files
sidata/app/Http/Controllers/Admin/RolessController.php
T
2022-07-07 16:29:51 +07:00

100 lines
2.8 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Roless;
use App\Models\RolePermission;
use App\Models\Permission;
use Illuminate\Http\Request;
class RolessController extends Controller
{
public function __construct(){
$this->siteTitle = "Data Roles";
parent::__construct();
}
public function index()
{
$data = Roless::where("name","<>","superadmin")->latest()->paginate(10);
return view('admin.mst_role.index',compact('data'))
->with('i', (request()->input('page', 1) - 1) * 10);
}
public function create()
{
$this->setSubtitle("Tambah Data");
return view('admin.mst_role.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required'
]);
$requestAll = $request->all();
$requestAll['guard_name'] = 'web';
Roless::create($requestAll);
return redirect()->route('roless.index')
->with('success','Role berhasil dibuat.');
}
public function show(Roless $roless)
{
$this->setSubtitle("Detail Data");
$permissions = Permission::get();
$rolePermissions = RolePermission::where("role_id",$roless->id)->get()->toArray();
$rolePermissions = array_column($rolePermissions, 'permission_id');
return view('admin.mst_role.show',compact('roless','permissions','rolePermissions'));
}
public function edit(Roless $roless)
{
$this->setSubtitle("Ubah Data");
return view('admin.mst_role.edit',compact('roless'));
}
public function update(Request $request, Roless $roless)
{
$request->validate([
'name' => 'required',
]);
$requestAll = $request->all();
$roless->update($requestAll);
return redirect()->route('roless.index')
->with('success','Role berhasil diubah!');
}
public function permissions($roleId, Request $request)
{
$request->validate([
'role_permission' => 'required',
]);
$requestAll = $request->all();
RolePermission::where("role_id", $roleId)->delete();
$role_permission = $requestAll["role_permission"];
foreach($role_permission as $row_permission){
RolePermission::create([
"permission_id"=>$row_permission,
"role_id"=>$roleId
]);
}
return redirect()->route('roless.index')
->with('success','Role berhasil diubah!');
}
public function destroy(Roless $roless)
{
$roless->delete();
return redirect()->route('roless.index')
->with('success','Role berhasil dihapus!');
}
}