This commit is contained in:
JaguarJack 2020-09-04 20:29:38 +08:00
parent 3466c8ec1f
commit d0044ee019
2 changed files with 111 additions and 182 deletions

View File

@ -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();
}
/**

View File

@ -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,
),
),