catchAdmin/modules/Permissions/Http/Controllers/PermissionsController.php

91 lines
1.8 KiB
PHP
Raw Normal View History

2022-12-07 19:28:57 +08:00
<?php
declare(strict_types=1);
namespace Modules\Permissions\Http\Controllers;
use Catch\Base\CatchController as Controller;
2022-12-23 19:47:13 +08:00
use Catch\Exceptions\FailedException;
use Illuminate\Support\Facades\Route;
2022-12-16 18:30:36 +08:00
use Modules\Permissions\Enums\MenuType;
2022-12-23 19:47:13 +08:00
use Modules\Permissions\Models\Permissions;
2022-12-07 19:28:57 +08:00
use Illuminate\Http\Request;
2022-12-23 19:47:13 +08:00
2022-12-07 19:28:57 +08:00
class PermissionsController extends Controller
{
2022-12-23 19:47:13 +08:00
/**
* @param Permissions $model
*/
2022-12-07 19:28:57 +08:00
public function __construct(
2022-12-23 19:47:13 +08:00
protected readonly Permissions $model
2022-12-07 19:28:57 +08:00
) {
}
/**
* @return mixed
*/
2022-12-16 18:30:36 +08:00
public function index(): mixed
2022-12-07 19:28:57 +08:00
{
2022-12-23 19:47:13 +08:00
return $this->model->setBeforeGetList(function ($query) {
return $query->with('actions')->whereIn('type', [MenuType::Top->value(), MenuType::Menu->value()]);
2022-12-16 18:30:36 +08:00
})->getList();
2022-12-07 19:28:57 +08:00
}
2022-12-23 19:47:13 +08:00
/**
*
* @param Request $request
* @return bool
*/
2022-12-07 19:28:57 +08:00
public function store(Request $request)
{
return $this->model->storeBy($request->all());
}
2022-12-23 19:47:13 +08:00
/**
*
* @param $id
* @return \Illuminate\Database\Eloquent\Model|null
*/
2022-12-07 19:28:57 +08:00
public function show($id)
{
return $this->model->firstBy($id);
}
2022-12-23 19:47:13 +08:00
/**
*
* @param $id
* @param Request $request
* @return mixed
*/
2022-12-07 19:28:57 +08:00
public function update($id, Request $request)
{
return $this->model->updateBy($id, $request->all());
}
2022-12-23 19:47:13 +08:00
/**
*
* @param $id
* @return bool|null
*/
2022-12-07 19:28:57 +08:00
public function destroy($id)
{
2022-12-23 19:47:13 +08:00
if ($this->model->where($this->model->getParentIdColumn(), $id)->first()) {
throw new FailedException('无法进行删除,请先删除子级');
}
2022-12-07 19:28:57 +08:00
return $this->model->deleteBy($id);
}
2022-12-10 18:29:42 +08:00
/**
* enable
*
* @param $id
* @return bool
*/
public function enable($id)
{
2022-12-14 19:25:52 +08:00
return $this->model->toggleBy($id, 'hidden');
2022-12-10 18:29:42 +08:00
}
2022-12-07 19:28:57 +08:00
}