From d0044ee01945669748c09f6ddd12809bd587f736 Mon Sep 17 00:00:00 2001 From: JaguarJack Date: Fri, 4 Sep 2020 20:29:38 +0800 Subject: [PATCH] update --- catch/permissions/controller/Permission.php | 39 ++- .../database/seeds/PermissionSeed.php | 254 ++++++------------ 2 files changed, 111 insertions(+), 182 deletions(-) diff --git a/catch/permissions/controller/Permission.php b/catch/permissions/controller/Permission.php index ea9b6da..6ab9e14 100644 --- a/catch/permissions/controller/Permission.php +++ b/catch/permissions/controller/Permission.php @@ -9,6 +9,7 @@ use catcher\exceptions\FailedException; use catcher\library\ParseClass; use catcher\Tree; use catchAdmin\permissions\model\Permissions; +use think\helper\Str; use think\response\Json; class Permission extends CatchController @@ -85,6 +86,32 @@ class Permission extends CatchController { $permission = $this->permissions->findBy($id); + if ($permission->parent_id) { + $parentPermission = $this->permissions->where('id', $permission->parent_id)->find(); + + $params = $request->param(); + $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; + + + $this->permissions->where('id',$id)->update(array_merge($params, [ + 'parent_id' => $permission->parent_id, + 'level' => $permission->level, + 'updated_at' => time() + ])); + + return CatchResponse::success(); + } + $params = array_merge($request->param(), [ 'parent_id' => $permission->parent_id, 'level' => $permission->level @@ -136,15 +163,19 @@ class Permission extends CatchController { $permission = $this->permissions->findBy($id); - $permission->status = $permission->status == Permissions::ENABLE ? Permissions::DISABLE : Permissions::ENABLE; + $hidden = $permission->hidden == Permissions::ENABLE ? Permissions::DISABLE : Permissions::ENABLE; - if ($permission->save()) { + if ($this->permissions->where('id', $id)->update([ + 'hidden' => $hidden, + 'updated_at' => time() + ])) { $this->permissions->where('parent_id', $id)->update([ - 'status' => $permission->status, + 'hidden' => $hidden, + 'updated_at' => time(), ]); } - return CatchResponse::success($permission->save()); + return CatchResponse::success(); } /** diff --git a/catch/permissions/database/seeds/PermissionSeed.php b/catch/permissions/database/seeds/PermissionSeed.php index 446f2db..ab4938d 100644 --- a/catch/permissions/database/seeds/PermissionSeed.php +++ b/catch/permissions/database/seeds/PermissionSeed.php @@ -27,20 +27,19 @@ class PermissionSeed extends Seeder 'parent_id' => 0, 'level' => '', 'route' => '/permissions', - 'icon' => 'appstore', + 'icon' => 'el-icon-cpu', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'permission@index', - 'component' => 'pageView', - 'redirect' => '', - 'hide_children_in_menu' => 2, + 'component' => 'layout', + 'redirect' => '/permissions/users', + 'hidden' => 1, 'keepalive' => 1, 'type' => 1, 'status' => 1, 'sort' => 100, 'created_at' => 1587461455, - 'updated_at' => 1593044101, + 'updated_at' => 1599116793, 'deleted_at' => 0, 'children' => array ( @@ -51,20 +50,19 @@ class PermissionSeed extends Seeder 'parent_id' => 1, 'level' => '1', 'route' => '/permissions/users', - 'icon' => 'user', + 'icon' => 'el-icon-user', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', - 'permission_mark' => 'user@index', + 'permission_mark' => 'user', 'component' => 'users', 'redirect' => '', - 'hide_children_in_menu' => 2, + 'hidden' => 1, 'keepalive' => 1, 'type' => 1, 'status' => 1, 'sort' => 10, 'created_at' => 1587461597, - 'updated_at' => 1592371975, + 'updated_at' => 1599116793, 'deleted_at' => 0, 'children' => array ( @@ -78,40 +76,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'user@index', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587461647, - 'updated_at' => 1591316160, - 'deleted_at' => 0, - ), - 1 => - array ( - 'id' => 4, - 'permission_name' => '创建', - 'parent_id' => 2, - 'level' => '1-2', - 'route' => '', - 'icon' => '', - 'module' => 'permissions', - 'creator_id' => 1, - 'method' => 'get', - 'permission_mark' => 'user@create', - 'component' => '', - 'redirect' => '', - 'hide_children_in_menu' => 1, - 'keepalive' => 1, - 'type' => 2, - 'status' => 1, - 'sort' => 1, - 'created_at' => 1587461696, - 'updated_at' => 1587547118, + 'updated_at' => 1599030266, 'deleted_at' => 0, ), 2 => @@ -124,17 +98,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'user@save', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587461721, - 'updated_at' => 1591345475, + 'updated_at' => 1599030266, 'deleted_at' => 0, ), 3 => @@ -147,17 +120,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'user@edit', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587461742, - 'updated_at' => 1591345504, + 'updated_at' => 1599030266, 'deleted_at' => 0, ), 4 => @@ -170,17 +142,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'user@update', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587461762, - 'updated_at' => 1587547118, + 'updated_at' => 1599030266, 'deleted_at' => 0, ), 5 => @@ -193,17 +164,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'user@delete', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587461841, - 'updated_at' => 1587547118, + 'updated_at' => 1599030266, 'deleted_at' => 0, ), 6 => @@ -216,17 +186,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'user@switchStatus', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587461876, - 'updated_at' => 1587547118, + 'updated_at' => 1599030266, 'deleted_at' => 0, ), 7 => @@ -239,17 +208,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'user@recover', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587461901, - 'updated_at' => 1587547118, + 'updated_at' => 1599030266, 'deleted_at' => 0, ), ), @@ -261,20 +229,19 @@ class PermissionSeed extends Seeder 'parent_id' => 1, 'level' => '1', 'route' => '/permissions/roles', - 'icon' => 'usergroup-add', + 'icon' => 'el-icon-s-custom', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'role@index', 'component' => 'roles', 'redirect' => '', - 'hide_children_in_menu' => 2, + 'hidden' => 1, 'keepalive' => 1, 'type' => 1, 'status' => 1, 'sort' => 9, 'created_at' => 1587461939, - 'updated_at' => 1592371974, + 'updated_at' => 1599116793, 'deleted_at' => 0, 'children' => array ( @@ -288,40 +255,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'role@index', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587461984, - 'updated_at' => 1591341461, - 'deleted_at' => 0, - ), - 1 => - array ( - 'id' => 13, - 'permission_name' => '创建', - 'parent_id' => 11, - 'level' => '1-11', - 'route' => '', - 'icon' => '', - 'module' => 'permissions', - 'creator_id' => 1, - 'method' => 'get', - 'permission_mark' => 'role@create', - 'component' => '', - 'redirect' => '', - 'hide_children_in_menu' => 1, - 'keepalive' => 1, - 'type' => 2, - 'status' => 1, - 'sort' => 1, - 'created_at' => 1587462007, - 'updated_at' => 1587547118, + 'updated_at' => 1599030223, 'deleted_at' => 0, ), 2 => @@ -334,17 +277,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'role@save', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462021, - 'updated_at' => 1587547118, + 'updated_at' => 1599030223, 'deleted_at' => 0, ), 3 => @@ -357,17 +299,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'role@edit', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462040, - 'updated_at' => 1587547118, + 'updated_at' => 1599030223, 'deleted_at' => 0, ), 4 => @@ -380,17 +321,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'role@update', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462058, - 'updated_at' => 1587547118, + 'updated_at' => 1599030223, 'deleted_at' => 0, ), 5 => @@ -403,17 +343,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'role@delete', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462070, - 'updated_at' => 1587547118, + 'updated_at' => 1599030223, 'deleted_at' => 0, ), 6 => @@ -426,17 +365,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'role@getPermissions', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462094, - 'updated_at' => 1587547118, + 'updated_at' => 1599030223, 'deleted_at' => 0, ), ), @@ -448,20 +386,19 @@ class PermissionSeed extends Seeder 'parent_id' => 1, 'level' => '1', 'route' => '/permissions/rules', - 'icon' => 'build', + 'icon' => 'el-icon-collection-tag', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'permission@index', 'component' => 'rules', 'redirect' => '', - 'hide_children_in_menu' => 2, + 'hidden' => 1, 'keepalive' => 1, 'type' => 1, 'status' => 1, 'sort' => 8, 'created_at' => 1587462147, - 'updated_at' => 1592371979, + 'updated_at' => 1599116793, 'deleted_at' => 0, 'children' => array ( @@ -475,40 +412,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'permission@index', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462205, - 'updated_at' => 1587547118, - 'deleted_at' => 0, - ), - 1 => - array ( - 'id' => 21, - 'permission_name' => '创建', - 'parent_id' => 19, - 'level' => '1-19', - 'route' => '', - 'icon' => '', - 'module' => 'permissions', - 'creator_id' => 1, - 'method' => 'get', - 'permission_mark' => 'permission@create', - 'component' => '', - 'redirect' => '', - 'hide_children_in_menu' => 1, - 'keepalive' => 1, - 'type' => 2, - 'status' => 1, - 'sort' => 1, - 'created_at' => 1587462232, - 'updated_at' => 1587547118, + 'updated_at' => 1599030338, 'deleted_at' => 0, ), 2 => @@ -521,17 +434,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'permission@save', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462250, - 'updated_at' => 1587547118, + 'updated_at' => 1599030338, 'deleted_at' => 0, ), 3 => @@ -544,17 +456,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'permission@edit', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462273, - 'updated_at' => 1587547118, + 'updated_at' => 1599030338, 'deleted_at' => 0, ), 4 => @@ -567,17 +478,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'permission@update', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462284, - 'updated_at' => 1587547118, + 'updated_at' => 1599030338, 'deleted_at' => 0, ), 5 => @@ -590,17 +500,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'permission@delete', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462296, - 'updated_at' => 1587547118, + 'updated_at' => 1599030338, 'deleted_at' => 0, ), ), @@ -612,20 +521,19 @@ class PermissionSeed extends Seeder 'parent_id' => 1, 'level' => '1', 'route' => '/permissions/departments', - 'icon' => 'desktop', + 'icon' => 'el-icon-monitor', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'departments', 'component' => 'departments', 'redirect' => '', - 'hide_children_in_menu' => 2, + 'hidden' => 1, 'keepalive' => 1, 'type' => 1, 'status' => 1, 'sort' => 7, 'created_at' => 1587462488, - 'updated_at' => 1587547118, + 'updated_at' => 1599116793, 'deleted_at' => 0, 'children' => array ( @@ -639,17 +547,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'department@index', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462529, - 'updated_at' => 1587547118, + 'updated_at' => 1599030565, 'deleted_at' => 0, ), 1 => @@ -662,17 +569,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'department@save', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462548, - 'updated_at' => 1587547118, + 'updated_at' => 1599030565, 'deleted_at' => 0, ), 2 => @@ -685,17 +591,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'department@update', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462579, - 'updated_at' => 1587547118, + 'updated_at' => 1599030565, 'deleted_at' => 0, ), 3 => @@ -708,17 +613,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'department@delete', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462592, - 'updated_at' => 1587547118, + 'updated_at' => 1599030565, 'deleted_at' => 0, ), ), @@ -730,20 +634,19 @@ class PermissionSeed extends Seeder 'parent_id' => 1, 'level' => '1', 'route' => '/permissions/jobs', - 'icon' => 'skin', + 'icon' => 'el-icon-setting', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'job', 'component' => 'jobs', 'redirect' => '', - 'hide_children_in_menu' => 2, + 'hidden' => 1, 'keepalive' => 1, 'type' => 1, 'status' => 1, 'sort' => 1, 'created_at' => 1587462707, - 'updated_at' => 1587547118, + 'updated_at' => 1599116793, 'deleted_at' => 0, 'children' => array ( @@ -757,17 +660,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', - 'permission_mark' => 'job@index', + 'permission_mark' => 'job@indexs', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462757, - 'updated_at' => 1587547118, + 'updated_at' => 1598959522, 'deleted_at' => 0, ), 1 => @@ -780,17 +682,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'job@save', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462774, - 'updated_at' => 1587547118, + 'updated_at' => 1598959522, 'deleted_at' => 0, ), 2 => @@ -803,17 +704,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'job@update', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462785, - 'updated_at' => 1587547118, + 'updated_at' => 1598959522, 'deleted_at' => 0, ), 3 => @@ -826,17 +726,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'job@delete', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462794, - 'updated_at' => 1587547118, + 'updated_at' => 1598959522, 'deleted_at' => 0, ), 4 => @@ -849,17 +748,16 @@ class PermissionSeed extends Seeder 'icon' => '', 'module' => 'permissions', 'creator_id' => 1, - 'method' => 'get', 'permission_mark' => 'job@getAll', 'component' => '', 'redirect' => '', - 'hide_children_in_menu' => 1, + 'hidden' => 1, 'keepalive' => 1, 'type' => 2, 'status' => 1, 'sort' => 1, 'created_at' => 1587462818, - 'updated_at' => 1587547118, + 'updated_at' => 1598959522, 'deleted_at' => 0, ), ),