/home2/mshostin/crm.ms-hostingladz.com/app/Http/Controllers/RolesController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use App\Models\User;
class RolesController extends Controller
{
//
public function index()
{
$roles = Role::orderBy('name', 'asc')->get();
return view('pages.roles.index', compact('roles'));
}
public function create()
{
$permissions = Permission::orderBy('name', 'asc')->get();
return view('pages.roles.create',compact('permissions'));
}
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required|unique:roles,name',
'permission' => 'required',
]);
$role = Role::create(['name' => $request->get('name')]);
$role->syncPermissions($request->get('permission'));
return redirect()->route('roles.index')->with('success', 'Role created successfully.');
}
public function edit($id)
{
$role = Role::find($id);
$rolePermissions = $role->permissions->pluck('name')->toArray();
$permissions = Permission::orderBy('name', 'asc')->get();
return view('pages.roles.edit', compact('role','rolePermissions', 'permissions'));
}
public function update(Request $request, $id)
{
// dd($request->all());
$role = Role::find($id);
$role->update($request->only('name'));
$role->syncPermissions($request->get('permission'));
return redirect()->route('roles.index')->with('success', 'Role updated successfully.');
}
public function destroy($id)
{
Role::find($id)->delete();
return redirect()->route('roles.index')->with('success', 'Role deleted successfully.');
}
}