52 lines
1.1 KiB
PHP
52 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Modules\Permissions\Http\Controllers;
|
|
|
|
use Catch\Base\CatchController as Controller;
|
|
use Modules\Permissions\Models\RolesModel;
|
|
use Modules\Permissions\Http\Requests\RoleRequest;
|
|
|
|
class RolesController extends Controller
|
|
{
|
|
public function __construct(
|
|
protected readonly RolesModel $model
|
|
) {
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function index(): mixed
|
|
{
|
|
return $this->model->setBeforeGetList(function ($query){
|
|
return $query->with(['permissions' => function($query){ $query->select('id');}]);
|
|
})->getList();
|
|
}
|
|
|
|
public function store(RoleRequest $request)
|
|
{
|
|
return $this->model->storeBy($request->all());
|
|
}
|
|
|
|
public function show($id)
|
|
{
|
|
$role = $this->model->firstBy($id);
|
|
|
|
$role->setAttribute('permissions', $role->permissions()->get()->toTree());
|
|
|
|
return $role;
|
|
}
|
|
|
|
public function update($id, RoleRequest $request)
|
|
{
|
|
return $this->model->updateBy($id, $request->all());
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
return $this->model->deleteBy($id);
|
|
}
|
|
}
|