diff --git a/catch/permissions/controller/Permission.php b/catch/permissions/controller/Permission.php index da1530e..343a47d 100644 --- a/catch/permissions/controller/Permission.php +++ b/catch/permissions/controller/Permission.php @@ -119,6 +119,30 @@ class Permission extends CatchController return CatchResponse::success($this->permissions->deleteBy($id)); } + + /** + * 显示/隐藏 + * + * @author JaguarJack + * @email njphper@gmail.com + * @time 2020/5/19 + * @param $id + * @return Json + */ + public function show($id) + { + $permission = $this->permissions->findBy($id); + + $permission->status = $permission->status == Permissions::ENABLE ? Permissions::DISABLE : Permissions::ENABLE; + + if ($permission->save()) { + $this->permissions->where('parent_id', $id)->update([ + 'status' => $permission->status, + ]); + } + + return CatchResponse::success($permission->save()); + } } diff --git a/catch/permissions/database/migrations/20200519082617_add_permission_status_column.php b/catch/permissions/database/migrations/20200519082617_add_permission_status_column.php new file mode 100644 index 0000000..191a69c --- /dev/null +++ b/catch/permissions/database/migrations/20200519082617_add_permission_status_column.php @@ -0,0 +1,42 @@ +hasTable('permissions')) { + $table = $this->table('permissions'); + + $table->addColumn('status', 'integer', [ + 'limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, + 'default' => 1, + 'comment' => '1 显示 2 隐藏', + 'after' => 'type']) + ->update(); + } + } +} diff --git a/catch/permissions/model/Permissions.php b/catch/permissions/model/Permissions.php index dc9db35..39b5984 100644 --- a/catch/permissions/model/Permissions.php +++ b/catch/permissions/model/Permissions.php @@ -21,6 +21,7 @@ class Permissions extends CatchModel 'keepalive', 'hide_children_in_menu', 'creator_id', + 'status', 'module', // 模块 'route', // 路由 'method', // 请求方法 @@ -71,7 +72,7 @@ class Permissions extends CatchModel return parent::whereIn('id', $permissionIds) ->field(['permission_name as title', 'id', 'parent_id', 'route', 'icon', 'component', 'redirect', - 'keepalive as keepAlive', 'hide_children_in_menu', 'type', 'permission_mark' + 'keepalive as keepAlive', 'hide_children_in_menu', 'type', 'permission_mark', 'status' ]) ->select(); } diff --git a/catch/permissions/route.php b/catch/permissions/route.php index 33dd83f..ed5c1b4 100644 --- a/catch/permissions/route.php +++ b/catch/permissions/route.php @@ -5,6 +5,8 @@ $router->resource('roles', '\catchAdmin\permissions\controller\Role'); $router->get('/role/get/permissions', '\catchAdmin\permissions\controller\Role@getPermissions'); // 权限 $router->resource('permissions', '\catchAdmin\permissions\controller\Permission'); +$router->put('permissions/show/', '\catchAdmin\permissions\controller\Permission@show'); + // 部门 $router->resource('departments', '\catchAdmin\permissions\controller\Department'); // 岗位