权限模型更新

This commit is contained in:
JaguarJack 2021-05-16 21:24:23 +08:00
parent 1f30ead774
commit 8c307cd4fb

View File

@ -3,6 +3,7 @@ namespace catchAdmin\permissions\model;
use catchAdmin\permissions\model\search\PermissionsSearch; use catchAdmin\permissions\model\search\PermissionsSearch;
use catcher\base\CatchModel; use catcher\base\CatchModel;
use think\helper\Str;
use think\Model; use think\Model;
class Permissions extends CatchModel class Permissions extends CatchModel
@ -40,6 +41,16 @@ class Permissions extends CatchModel
public const PUT = 'put'; public const PUT = 'put';
public const DELETE = 'delete'; public const DELETE = 'delete';
/**
* 列表
*
* @time 2021年05月13日
* @param false $isMenu
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @return mixed|\think\Collection
*/
public function getList($isMenu = false) public function getList($isMenu = false)
{ {
return $this->catchSearch() return $this->catchSearch()
@ -148,7 +159,7 @@ class Permissions extends CatchModel
* *
* @time 2021年05月13日 * @time 2021年05月13日
* @param $id * @param $id
* @return Permissions * @return mixed
*/ */
public function show($id) public function show($id)
{ {
@ -176,7 +187,7 @@ class Permissions extends CatchModel
* @param array $ids * @param array $ids
* @return array * @return array
*/ */
protected function getNextLevel(array $id, &$ids = []) protected function getNextLevel(array $id, &$ids = []): array
{ {
$_ids = $this->whereIn('parent_id', $id) $_ids = $this->whereIn('parent_id', $id)
->where('type', self::MENU_TYPE) ->where('type', self::MENU_TYPE)
@ -188,4 +199,59 @@ class Permissions extends CatchModel
return $ids; return $ids;
} }
/**
* 更新 button
*
* @time 2021年05月13日
* @param $params
* @param $permission
* @return bool
*/
public function updateButton($params, $permission): bool
{
$parentPermission = $this->findBy($permission->parent_id);
$permissionMark = $params['permission_mark'];
if ($parentPermission->parent_id) {
if (Str::contains($parentPermission->permission_mark, '@')) {
list($controller, $action) = explode('@', $parentPermission->permission_mark);
$permissionMark = $controller . '@' . $permissionMark;
} else {
$permissionMark = $parentPermission->permission_mark .'@'. $permissionMark;
}
}
$params['permission_mark'] = $permissionMark;
return $this->updateBy($permission->id,array_merge($params, [
'parent_id' => $permission->parent_id,
'level' => $permission->level,
'updated_at' => time()
]));
}
/**
* 更新菜单
*
* @time 2021年05月13日
* @param $id
* @param $params
* @return bool
*/
public function updateMenu($id, $params): bool
{
if ($this->updateBy($id, $params)) {
if ($params['module'] ?? false) {
$this->updateBy($id, [
'module' => $params['module'],
], 'parent_id');
}
return true;
}
return false;
}
} }