feat: new feat

This commit is contained in:
JaguarJack
2023-01-08 20:30:37 +08:00
parent 596932427d
commit aad083bda7
5 changed files with 72 additions and 17 deletions

View File

@@ -6,16 +6,21 @@ namespace Modules\Permissions\Http\Controllers;
use Catch\Base\CatchController as Controller;
use Catch\Exceptions\FailedException;
use Modules\Permissions\Enums\DataRange;
use Modules\Permissions\Models\Roles;
use Modules\Permissions\Http\Requests\RoleRequest;
class RolesController extends Controller
{
/**
* @param Roles $model
*/
public function __construct(
protected readonly Roles $model
) {
}
/**
* @return mixed
*/
@@ -28,31 +33,59 @@ class RolesController extends Controller
})->getList();
}
/**
*
* @param RoleRequest $request
* @return bool
*/
public function store(RoleRequest $request)
{
if (! DataRange::Personal_Choose->assert($request->get('data_range'))) {
$request['departments'] = [];
}
return $this->model->storeBy($request->all());
}
/**
*
* @param $id
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function show($id)
{
$role = $this->model->firstBy($id);
$role->setAttribute('permissions', $role->permissions()->get()->toTree());
$role->setAttribute('departments', $role->departments()->get()->toTree());
$role->setAttribute('departments', $role->departments()->pluck('id'));
return $role;
}
/**
*
* @param $id
* @param RoleRequest $request
* @return mixed
*/
public function update($id, RoleRequest $request)
{
if (! DataRange::Personal_Choose->assert($request->get('data_range'))) {
$request['departments'] = [];
}
return $this->model->updateBy($id, $request->all());
}
/**
* @param $id
* @return bool|null
*/
public function destroy($id)
{
if ($this->model->where($this->model->getParentIdColumn(), $id)->first()) {
throw new FailedException('请先删除子');
throw new FailedException('请先删除子角色');
}
return $this->model->deleteBy($id);