diff --git a/app/admin/controller/Admin.php b/app/admin/controller/Admin.php index 76febf8..845964b 100644 --- a/app/admin/controller/Admin.php +++ b/app/admin/controller/Admin.php @@ -3,6 +3,7 @@ namespace app\admin\controller; use app\model\Admin as AppAdmin; +use app\model\AdminLog; use app\UploadFiles as AppUploadFiles; use think\facade\View; @@ -86,4 +87,14 @@ class Admin extends Common { } + + public function adminLog() + { + + $list = AdminLog::order('id desc')->paginate(10); + + View::assign('list',$list); + + return View::fetch(); + } } diff --git a/app/admin/controller/AdminPermission.php b/app/admin/controller/AdminPermission.php index 80ea1df..09c0e0e 100644 --- a/app/admin/controller/AdminPermission.php +++ b/app/admin/controller/AdminPermission.php @@ -3,6 +3,7 @@ namespace app\admin\controller; use app\model\AdminPermission as AppAdminPermission; +use think\facade\Cache; use think\facade\View; use think\Request; @@ -17,7 +18,7 @@ class AdminPermission extends Common { // - $list = AppAdminPermission::paginate(); + $list = AppAdminPermission::order('app,controller,action')->paginate(); View::assign('list',$list); @@ -51,6 +52,8 @@ class AdminPermission extends Common $model_permission->save(); + Cache::delete('logged_admin_permission'); + return json_message(); } @@ -63,5 +66,8 @@ class AdminPermission extends Common public function delete($id) { // + AppAdminPermission::destroy($id); + Cache::delete('logged_admin_permission'); + return json_message(); } } diff --git a/app/admin/middleware.php b/app/admin/middleware.php index 06e50c3..a01674a 100644 --- a/app/admin/middleware.php +++ b/app/admin/middleware.php @@ -1,5 +1,6 @@ select()); + } + + + $is_exit = $logged_admin_permission->where('app',$request->app()) + ->where('controller',$request->controller()) + ->where('action',$request->action()); + + if(!$is_exit->isEmpty()){ + AppAdminLog::create([ + 'app'=>$request->app(), + 'controller'=>$request->controller(), + 'action'=>$request->action(), + 'param'=>$request->param(), + 'create_time'=>time(), + 'admin_id'=>$request->session('admin_id','0'), + 'ip'=>$request->ip() + ]); + } + + return $next($request); + + } +} diff --git a/app/model/AdminLog.php b/app/model/AdminLog.php new file mode 100644 index 0000000..0352016 --- /dev/null +++ b/app/model/AdminLog.php @@ -0,0 +1,40 @@ +belongsTo('Admin','admin_id'); + } + + public function getUrlAttr() + { + return AdminPermission::where([ + 'app'=>$this->getData('app'), + 'controller'=>$this->getData('controller'), + 'action'=>$this->getData('action'), + ])->find(); + } + + public function setParamAttr($value) + { + return json_encode($value,JSON_UNESCAPED_UNICODE); + } + + public function getParamAttr($value) + { + return \mb_substr($value,0,30); + } +} diff --git a/app/model/AdminPermission.php b/app/model/AdminPermission.php index 4247ab9..95fb7a6 100644 --- a/app/model/AdminPermission.php +++ b/app/model/AdminPermission.php @@ -11,4 +11,14 @@ use think\Model; class AdminPermission extends Model { // + + public function getIsLogAttr($value) + { + $status = [ + 0=>'不记录', + 1=>'记录', + ]; + + return $status[intval($value)]; + } } diff --git a/view/admin/admin/admin_log.html b/view/admin/admin/admin_log.html new file mode 100644 index 0000000..f7b4fdd --- /dev/null +++ b/view/admin/admin/admin_log.html @@ -0,0 +1,100 @@ + + + +
+ + + +| ID | +访问地址 | +访问信息 | +携带参数 | +操作管理员 | + +|
|---|---|---|---|---|---|
| {$vo.id} | +
+ {$vo.url.name} +{$vo.app}/{$vo.controller}/{$vo.action} + |
+
+ 访问时间:{$vo.create_time} +访问IP:{$vo.ip} + |
+
+ 查看详情
+ + {$vo.param} + |
+
+ |
+
+ |
| 暂无操作记录 | +|||||