This commit is contained in:
JaguarJack
2020-09-05 16:01:18 +08:00
parent d0044ee019
commit c8a7d0291c
12 changed files with 1655 additions and 18 deletions

View File

@@ -67,9 +67,22 @@ class Permission extends CatchController
// 如果是子分类 自动写入父类模块
$parentId = $params['parent_id'] ?? 0;
if ($parentId) {
$parent = $this->permissions->findBy($parentId);
$params['module'] = $parent->module;
// 按钮类型寻找上级
if ($params['type'] == Permissions::BTN_TYPE && $parentId) {
$permissionMark = $params['permission_mark'];
// 查找父级
$parentPermission = $this->permissions->findBy($parentId);
// 如果父级是顶级 parent_id = 0
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;
$params['module'] = $parentPermission->module;
}
return CatchResponse::success($this->permissions->storeBy($params));
@@ -87,7 +100,7 @@ class Permission extends CatchController
$permission = $this->permissions->findBy($id);
if ($permission->parent_id) {
$parentPermission = $this->permissions->where('id', $permission->parent_id)->find();
$parentPermission = $this->permissions->findBy($permission->parent_id);
$params = $request->param();
$permissionMark = $params['permission_mark'];

View File

@@ -39,7 +39,7 @@ class PermissionSeed extends Seeder
'status' => 1,
'sort' => 100,
'created_at' => 1587461455,
'updated_at' => 1599116793,
'updated_at' => 1599219097,
'deleted_at' => 0,
'children' =>
array (
@@ -88,6 +88,28 @@ class PermissionSeed extends Seeder
'updated_at' => 1599030266,
'deleted_at' => 0,
),
1 =>
array (
'id' => 4,
'permission_name' => '创建',
'parent_id' => 2,
'level' => '1-2',
'route' => '',
'icon' => '',
'module' => 'permissions',
'creator_id' => 1,
'permission_mark' => 'user@create',
'component' => '',
'redirect' => '',
'hidden' => 1,
'keepalive' => 1,
'type' => 2,
'status' => 1,
'sort' => 1,
'created_at' => 1587461696,
'updated_at' => 1599030266,
'deleted_at' => 0,
),
2 =>
array (
'id' => 5,
@@ -267,6 +289,28 @@ class PermissionSeed extends Seeder
'updated_at' => 1599030223,
'deleted_at' => 0,
),
1 =>
array (
'id' => 13,
'permission_name' => '创建',
'parent_id' => 11,
'level' => '1-11',
'route' => '',
'icon' => '',
'module' => 'permissions',
'creator_id' => 1,
'permission_mark' => 'role@create',
'component' => '',
'redirect' => '',
'hidden' => 1,
'keepalive' => 1,
'type' => 2,
'status' => 1,
'sort' => 1,
'created_at' => 1587462007,
'updated_at' => 1599030223,
'deleted_at' => 0,
),
2 =>
array (
'id' => 14,
@@ -424,6 +468,28 @@ class PermissionSeed extends Seeder
'updated_at' => 1599030338,
'deleted_at' => 0,
),
1 =>
array (
'id' => 21,
'permission_name' => '创建',
'parent_id' => 19,
'level' => '1-19',
'route' => '',
'icon' => '',
'module' => 'permissions',
'creator_id' => 1,
'permission_mark' => 'permission@create',
'component' => '',
'redirect' => '',
'hidden' => 1,
'keepalive' => 1,
'type' => 2,
'status' => 1,
'sort' => 1,
'created_at' => 1587462232,
'updated_at' => 1599030338,
'deleted_at' => 0,
),
2 =>
array (
'id' => 22,
@@ -449,14 +515,14 @@ class PermissionSeed extends Seeder
3 =>
array (
'id' => 23,
'permission_name' => '查看',
'permission_name' => '禁用/启用',
'parent_id' => 19,
'level' => '1-19',
'route' => '',
'icon' => '',
'module' => 'permissions',
'creator_id' => 1,
'permission_mark' => 'permission@edit',
'permission_mark' => 'permission@show',
'component' => '',
'redirect' => '',
'hidden' => 1,
@@ -465,7 +531,7 @@ class PermissionSeed extends Seeder
'status' => 1,
'sort' => 1,
'created_at' => 1587462273,
'updated_at' => 1599030338,
'updated_at' => 1599220816,
'deleted_at' => 0,
),
4 =>
@@ -512,6 +578,28 @@ class PermissionSeed extends Seeder
'updated_at' => 1599030338,
'deleted_at' => 0,
),
6 =>
array (
'id' => 106,
'permission_name' => '权限方法',
'parent_id' => 19,
'level' => '1-19',
'route' => '',
'icon' => '',
'module' => 'permissions',
'creator_id' => 1,
'permission_mark' => 'permission@getMethods',
'component' => '',
'redirect' => '',
'hidden' => 1,
'keepalive' => 1,
'type' => 2,
'status' => 1,
'sort' => 1,
'created_at' => 1599221913,
'updated_at' => 1599222591,
'deleted_at' => 0,
),
),
),
3 =>
@@ -646,7 +734,7 @@ class PermissionSeed extends Seeder
'status' => 1,
'sort' => 1,
'created_at' => 1587462707,
'updated_at' => 1599116793,
'updated_at' => 1599219794,
'deleted_at' => 0,
'children' =>
array (
@@ -663,7 +751,7 @@ class PermissionSeed extends Seeder
'permission_mark' => 'job@indexs',
'component' => '',
'redirect' => '',
'hidden' => 1,
'hidden' => 2,
'keepalive' => 1,
'type' => 2,
'status' => 1,
@@ -685,7 +773,7 @@ class PermissionSeed extends Seeder
'permission_mark' => 'job@save',
'component' => '',
'redirect' => '',
'hidden' => 1,
'hidden' => 2,
'keepalive' => 1,
'type' => 2,
'status' => 1,
@@ -707,7 +795,7 @@ class PermissionSeed extends Seeder
'permission_mark' => 'job@update',
'component' => '',
'redirect' => '',
'hidden' => 1,
'hidden' => 2,
'keepalive' => 1,
'type' => 2,
'status' => 1,
@@ -729,7 +817,7 @@ class PermissionSeed extends Seeder
'permission_mark' => 'job@delete',
'component' => '',
'redirect' => '',
'hidden' => 1,
'hidden' => 2,
'keepalive' => 1,
'type' => 2,
'status' => 1,
@@ -751,7 +839,7 @@ class PermissionSeed extends Seeder
'permission_mark' => 'job@getAll',
'component' => '',
'redirect' => '',
'hidden' => 1,
'hidden' => 2,
'keepalive' => 1,
'type' => 2,
'status' => 1,

View File

@@ -20,7 +20,7 @@ class Permissions extends CatchModel
'redirect',
'keepalive',
'creator_id',
'status',
'hidden',
'module', // 模块
'route', // 路由
'permission_mark', // 权限标识
@@ -69,7 +69,7 @@ class Permissions extends CatchModel
return parent::whereIn('id', $permissionIds)
->field(['permission_name as title', 'id', 'parent_id',
'route', 'icon', 'component', 'redirect', 'module',
'keepalive as keepAlive', 'type', 'permission_mark', 'status'
'keepalive as keepAlive', 'type', 'permission_mark', 'hidden'
])
->catchOrder()
->select();