diff --git a/catchAdmin/permissions/OperateLogListener.php b/catchAdmin/permissions/OperateLogListener.php index 4945e49..0ea6041 100644 --- a/catchAdmin/permissions/OperateLogListener.php +++ b/catchAdmin/permissions/OperateLogListener.php @@ -2,19 +2,26 @@ namespace catchAdmin\permissions; +use catchAdmin\permissions\model\Permissions; +use catcher\CatchAdmin; use think\facade\Db; class OperateLogListener { public function handle($params) { + $request = $params['request']; + $permission = $params['permission']; + Db::name('operate_log')->insert([ - 'module' => $params['module'], - 'ip' => request()->ip(), - 'operate' => $params['operate'], - 'creator_id' => $params['uid'], - 'method' => $params['method'], + 'creator_id' => $request->user()->id, + 'module' => Permissions::where('id', $permission->parent_id)->value('permission_name'), + 'method' => $request->method(), + 'operate' => $permission->permission_name, + 'route' => $permission->route, + 'params' => json_encode($request->param()), 'created_at' => time(), + 'ip' => $request->ip(), ]); } } diff --git a/catchAdmin/permissions/PermissionsMiddleware.php b/catchAdmin/permissions/PermissionsMiddleware.php index df82c77..2ef432d 100644 --- a/catchAdmin/permissions/PermissionsMiddleware.php +++ b/catchAdmin/permissions/PermissionsMiddleware.php @@ -27,7 +27,7 @@ class PermissionsMiddleware } // toad if (($permission = $this->getPermission($request)) - && in_array($permission->id, $request->user()->getPermissionsBy())) { + && !in_array($permission->id, $request->user()->getPermissionsBy())) { throw new PermissionForbiddenException(); } @@ -57,21 +57,18 @@ class PermissionsMiddleware $module = array_pop($controller); - $permissionMark = sprintf('%s:%s:%s', $module, $controllerName, $action); - - $permission = Permissions::where('permission_mark', $permissionMark)->find(); - - - $params['uid'] = $request->user()->id; - $params['module'] = $rule ? CatchAdmin::getModulesInfo(false)[$module] : '首页'; - $params['method'] = $request->method(); - $params['operate'] = sprintf('%s/%s', $controllerName, $action); - event('operateLog', $params); + $permissionMark = sprintf('%s:%s', $controllerName, $action); + $permission = Permissions::where('module', $module)->where('permission_mark', $permissionMark)->find(); if (!$permission) { return false; } + event('operateLog', [ + 'request' => $request, + 'permission' => $permission, + ]); + return $permission; } } \ No newline at end of file diff --git a/catchAdmin/permissions/database/migrations/20191208125722_roles.php b/catchAdmin/permissions/database/migrations/20191208125722_roles.php index a794623..6c0412d 100644 --- a/catchAdmin/permissions/database/migrations/20191208125722_roles.php +++ b/catchAdmin/permissions/database/migrations/20191208125722_roles.php @@ -34,7 +34,7 @@ class Roles extends Migrator ->addColumn('description', 'string',['default'=> '','comment'=>'角色备注']) ->addColumn('created_at', 'integer', array('default'=>0,'comment'=>'创建时间', 'signed' => false )) ->addColumn('updated_at', 'integer', array('default'=>0,'comment'=>'更新时间', 'signed' => false)) - ->addColumn('deleted_at', 'integer', array('null'=>true,'comment'=>'删除状态,0未删除 >0 已删除', 'signed' => false)) + ->addColumn('deleted_at', 'integer', array('default'=>0,'comment'=>'删除状态,0未删除 >0 已删除', 'signed' => false)) ->create(); } } diff --git a/catchAdmin/permissions/database/migrations/20191208125726_permissions.php b/catchAdmin/permissions/database/migrations/20191208125726_permissions.php index ab252a1..50a6fbe 100644 --- a/catchAdmin/permissions/database/migrations/20191208125726_permissions.php +++ b/catchAdmin/permissions/database/migrations/20191208125726_permissions.php @@ -39,7 +39,7 @@ class Permissions extends Migrator ->addColumn('sort', 'integer',['default'=> 0,'comment'=>'排序字段']) ->addColumn('created_at', 'integer', array('default'=>0,'comment'=>'创建时间', 'signed' => false )) ->addColumn('updated_at', 'integer', array('default'=>0,'comment'=>'更新时间', 'signed' => false)) - ->addColumn('deleted_at', 'integer', array('null'=>true,'comment'=>'删除状态,null 未删除 timestamp 已删除', 'signed' => false)) + ->addColumn('deleted_at', 'integer', array('default'=>0,'comment'=>'删除状态,null 未删除 timestamp 已删除', 'signed' => false)) ->create(); }