作者 赵彬吉

update

1 <?php 1 <?php
2 2
3 -namespace App\Http\Controllers\Aside; 3 +namespace App\Http\Controllers\Aside\Manage;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
  6 +use App\Http\Controllers\Aside\BaseController;
6 use App\Http\Logic\Aside\DeptLogic; 7 use App\Http\Logic\Aside\DeptLogic;
7 use App\Http\Requests\Aside\DeptRequest; 8 use App\Http\Requests\Aside\DeptRequest;
8 use App\Rules\Ids; 9 use App\Rules\Ids;
@@ -17,7 +18,7 @@ use Illuminate\Http\Request; @@ -17,7 +18,7 @@ use Illuminate\Http\Request;
17 class DeptController extends BaseController 18 class DeptController extends BaseController
18 { 19 {
19 20
20 - public function index(DeptLogic $logic) 21 + public function list(DeptLogic $logic)
21 { 22 {
22 $map = []; 23 $map = [];
23 if(!empty($this->param['search'])){ 24 if(!empty($this->param['search'])){
@@ -25,7 +26,8 @@ class DeptController extends BaseController @@ -25,7 +26,8 @@ class DeptController extends BaseController
25 } 26 }
26 $sort = ['id' => 'desc']; 27 $sort = ['id' => 'desc'];
27 $data = $logic->getList($map, $sort, ['id', 'pid', 'title'],0); 28 $data = $logic->getList($map, $sort, ['id', 'pid', 'title'],0);
28 - return $this->success(Arr::listToTree($data)); 29 +
  30 + return view("admin.dept", ["list" => Arr::listToTree($data)]);
29 } 31 }
30 32
31 public function info(Request $request, DeptLogic $logic){ 33 public function info(Request $request, DeptLogic $logic){
1 <?php 1 <?php
2 2
3 -namespace App\Http\Controllers\Aside; 3 +namespace App\Http\Controllers\Aside\Manage;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
  6 +use App\Http\Controllers\Aside\BaseController;
6 use App\Http\Logic\Aside\GroupLogic; 7 use App\Http\Logic\Aside\GroupLogic;
7 use App\Http\Requests\Aside\GroupRequest; 8 use App\Http\Requests\Aside\GroupRequest;
8 use App\Rules\Ids; 9 use App\Rules\Ids;
1 <?php 1 <?php
2 2
3 -namespace App\Http\Controllers\Aside; 3 +namespace App\Http\Controllers\Aside\Manage;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
  6 +use App\Http\Controllers\Aside\BaseController;
6 use App\Http\Logic\Aside\ManageLogic; 7 use App\Http\Logic\Aside\ManageLogic;
7 use App\Http\Requests\Aside\ManageRequest; 8 use App\Http\Requests\Aside\ManageRequest;
8 use App\Rules\Ids; 9 use App\Rules\Ids;
@@ -21,7 +22,7 @@ class ManageController extends BaseController @@ -21,7 +22,7 @@ class ManageController extends BaseController
21 public function list(Request $request, ManageLogic $logic) 22 public function list(Request $request, ManageLogic $logic)
22 { 23 {
23 $list = $logic->getList(); 24 $list = $logic->getList();
24 - return view("admin.Manage", ["list" => $list]); 25 + return view("admin.manage", ["list" => $list]);
25 } 26 }
26 27
27 public function info(Request $request, ManageLogic $logic){ 28 public function info(Request $request, ManageLogic $logic){
1 <?php 1 <?php
2 2
3 -namespace App\Http\Controllers\Aside; 3 +namespace App\Http\Controllers\Aside\Manage;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
  6 +use App\Http\Controllers\Aside\BaseController;
6 use App\Http\Logic\Aside\MenuLogic; 7 use App\Http\Logic\Aside\MenuLogic;
7 use App\Http\Requests\Aside\MenuRequest; 8 use App\Http\Requests\Aside\MenuRequest;
8 use App\Rules\Ids; 9 use App\Rules\Ids;
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 namespace App\Http\Logic\Aside; 3 namespace App\Http\Logic\Aside;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
6 -use App\Models\Dept; 6 +use App\Models\Manage\Dept;
7 use Illuminate\Database\Eloquent\Model; 7 use Illuminate\Database\Eloquent\Model;
8 8
9 /** 9 /**
@@ -34,7 +34,7 @@ class DeptLogic extends BaseLogic @@ -34,7 +34,7 @@ class DeptLogic extends BaseLogic
34 return parent::save($param); 34 return parent::save($param);
35 } 35 }
36 36
37 - public function delete($ids){ 37 + public function delete($ids, $map = []){
38 $ids= array_filter(Arr::splitFilterToArray($ids), 'intval'); 38 $ids= array_filter(Arr::splitFilterToArray($ids), 'intval');
39 foreach ($ids as $id){ 39 foreach ($ids as $id){
40 $info = $this->getCacheInfo($id); 40 $info = $this->getCacheInfo($id);
@@ -4,7 +4,7 @@ namespace App\Http\Logic\Aside; @@ -4,7 +4,7 @@ namespace App\Http\Logic\Aside;
4 4
5 5
6 use App\Helper\Arr; 6 use App\Helper\Arr;
7 -use App\Models\Group; 7 +use App\Models\Manage\Group;
8 8
9 /** 9 /**
10 * Class GroupLogic 10 * Class GroupLogic
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 2
3 namespace App\Http\Logic\Aside; 3 namespace App\Http\Logic\Aside;
4 4
5 -use App\Models\Manage;  
6 -use App\Models\ManageLoginLog; 5 +use App\Models\Manage\Manage;
  6 +use App\Models\Manage\LoginLog;
7 use Illuminate\Support\Facades\Hash; 7 use Illuminate\Support\Facades\Hash;
8 use Illuminate\Support\Facades\Session; 8 use Illuminate\Support\Facades\Session;
9 9
@@ -39,7 +39,7 @@ class LoginLogic extends BaseLogic @@ -39,7 +39,7 @@ class LoginLogic extends BaseLogic
39 } 39 }
40 Session::put('manage', $manage->toArray()); 40 Session::put('manage', $manage->toArray());
41 41
42 - ManageLoginLog::addLog($manage->id); 42 + LoginLog::addLog($manage->id);
43 43
44 return $this->success(); 44 return $this->success();
45 } 45 }
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 namespace App\Http\Logic\Aside; 3 namespace App\Http\Logic\Aside;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
6 -use App\Models\Manage; 6 +use App\Models\Manage\Manage;
7 use Illuminate\Database\Eloquent\Model; 7 use Illuminate\Database\Eloquent\Model;
8 use Illuminate\Support\Facades\Hash; 8 use Illuminate\Support\Facades\Hash;
9 9
@@ -4,7 +4,7 @@ namespace App\Http\Logic\Aside; @@ -4,7 +4,7 @@ namespace App\Http\Logic\Aside;
4 4
5 5
6 use App\Helper\Arr; 6 use App\Helper\Arr;
7 -use App\Models\Menu; 7 +use App\Models\Manage\Menu;
8 use Illuminate\Support\Facades\Route; 8 use Illuminate\Support\Facades\Route;
9 use Illuminate\Support\Str; 9 use Illuminate\Support\Str;
10 10
@@ -33,7 +33,7 @@ class DeptLogic extends BaseLogic @@ -33,7 +33,7 @@ class DeptLogic extends BaseLogic
33 return parent::save($param); 33 return parent::save($param);
34 } 34 }
35 35
36 - public function delete($ids){ 36 + public function delete($ids, $map =[]){
37 $ids= array_filter(Arr::splitFilterToArray($ids), 'intval'); 37 $ids= array_filter(Arr::splitFilterToArray($ids), 'intval');
38 foreach ($ids as $id){ 38 foreach ($ids as $id){
39 $info = $this->getCacheInfo($id); 39 $info = $this->getCacheInfo($id);
@@ -35,7 +35,7 @@ class CategoryLogic extends BaseLogic @@ -35,7 +35,7 @@ class CategoryLogic extends BaseLogic
35 return parent::save($param); 35 return parent::save($param);
36 } 36 }
37 37
38 - public function delete($ids){ 38 + public function delete($ids, $map = []){
39 $ids= array_filter(Arr::splitFilterToArray($ids), 'intval'); 39 $ids= array_filter(Arr::splitFilterToArray($ids), 'intval');
40 foreach ($ids as $id){ 40 foreach ($ids as $id){
41 $info = $this->getCacheInfo($id); 41 $info = $this->getCacheInfo($id);
@@ -38,7 +38,7 @@ class KeywordLogic extends BaseLogic @@ -38,7 +38,7 @@ class KeywordLogic extends BaseLogic
38 return $this->success(); 38 return $this->success();
39 } 39 }
40 40
41 - public function delete($ids){ 41 + public function delete($ids, $map = []){
42 $ids= array_filter(Arr::splitFilterToArray($ids), 'intval'); 42 $ids= array_filter(Arr::splitFilterToArray($ids), 'intval');
43 43
44 DB::beginTransaction(); 44 DB::beginTransaction();
@@ -39,7 +39,7 @@ class ProductLogic extends BaseLogic @@ -39,7 +39,7 @@ class ProductLogic extends BaseLogic
39 return $this->success(); 39 return $this->success();
40 } 40 }
41 41
42 - public function delete($ids){ 42 + public function delete($ids, $map =[]){
43 $ids= array_filter(Arr::splitFilterToArray($ids), 'intval'); 43 $ids= array_filter(Arr::splitFilterToArray($ids), 'intval');
44 44
45 DB::beginTransaction(); 45 DB::beginTransaction();
@@ -3,9 +3,14 @@ @@ -3,9 +3,14 @@
3 namespace App\Http\Middleware\Aside; 3 namespace App\Http\Middleware\Aside;
4 4
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
  6 +use App\Models\Manage\Group;
  7 +use App\Models\Manage\Manage;
  8 +use App\Models\Manage\Menu;
6 use Closure; 9 use Closure;
7 use Illuminate\Http\Request; 10 use Illuminate\Http\Request;
  11 +use Illuminate\Support\Facades\Route;
8 use Illuminate\Support\Facades\Session; 12 use Illuminate\Support\Facades\Session;
  13 +use Illuminate\Support\Str;
9 14
10 class LoginAuthMiddleware 15 class LoginAuthMiddleware
11 { 16 {
@@ -24,7 +29,24 @@ class LoginAuthMiddleware @@ -24,7 +29,24 @@ class LoginAuthMiddleware
24 if($request->ajax()){ 29 if($request->ajax()){
25 return response(['status'=> Code::USER_ERROR,'msg'=>'当前用户未登录']); 30 return response(['status'=> Code::USER_ERROR,'msg'=>'当前用户未登录']);
26 }else{ 31 }else{
27 - return redirect(route('admin.login')); 32 + return redirect(route('admin.login.white'));
  33 + }
  34 + }
  35 + //权限
  36 + $manage['id'] = 2;
  37 + $manage['gid'] = 1;
  38 +
  39 + if($manage['id'] != Manage::ADMINISTRATOR_ID){ //排除超级管理员
  40 + $route = Route::getCurrentRoute()->getName();
  41 + if(!Str::endsWith($route, '.white')){ //排除白名单路由
  42 + $routes = Group::getRouteByGroupId($manage['gid']);
  43 + if(!in_array($route, $routes)){
  44 + if($request->ajax()){
  45 + return response(['status'=> Code::USER_ERROR,'msg'=>'无权限']);
  46 + }else{
  47 + return response(view('admin/no_auth'));
  48 + }
  49 + }
28 } 50 }
29 } 51 }
30 52
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 2
3 namespace App\Http\Requests\Aside; 3 namespace App\Http\Requests\Aside;
4 4
5 -use App\Models\Group; 5 +use App\Models\Manage\Group;
6 use Illuminate\Foundation\Http\FormRequest; 6 use Illuminate\Foundation\Http\FormRequest;
7 use Illuminate\Validation\Rule; 7 use Illuminate\Validation\Rule;
8 8
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 2
3 namespace App\Http\Requests\Aside; 3 namespace App\Http\Requests\Aside;
4 4
5 -use App\Models\Manage; 5 +use App\Models\Manage\Manage;
6 use App\Rules\Mobile; 6 use App\Rules\Mobile;
7 use Illuminate\Foundation\Http\FormRequest; 7 use Illuminate\Foundation\Http\FormRequest;
8 use Illuminate\Validation\Rule; 8 use Illuminate\Validation\Rule;
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 2
3 namespace App\Http\Requests\Aside; 3 namespace App\Http\Requests\Aside;
4 4
5 -use App\Models\Menu; 5 +use App\Models\Manage\Menu;
6 use Illuminate\Foundation\Http\FormRequest; 6 use Illuminate\Foundation\Http\FormRequest;
7 use Illuminate\Validation\Rule; 7 use Illuminate\Validation\Rule;
8 8
1 <?php 1 <?php
2 2
3 -namespace App\Models; 3 +namespace App\Models\Manage;
4 4
  5 +use App\Models\Base;
5 use Illuminate\Database\Eloquent\SoftDeletes; 6 use Illuminate\Database\Eloquent\SoftDeletes;
6 7
7 class Dept extends Base 8 class Dept extends Base
1 <?php 1 <?php
2 2
3 -namespace App\Models; 3 +namespace App\Models\Manage;
4 4
5 5
6 6
7 use App\Helper\Arr; 7 use App\Helper\Arr;
  8 +use App\Models\Base;
8 9
9 class Group extends Base 10 class Group extends Base
10 { 11 {
11 - protected $table = 'gl_group'; 12 + protected $table = 'gl_manage_group';
12 13
13 const STATUS_NORMAL = 0; 14 const STATUS_NORMAL = 0;
14 const STATUS_ABNORMAL = 1; 15 const STATUS_ABNORMAL = 1;
@@ -30,22 +31,21 @@ class Group extends Base @@ -30,22 +31,21 @@ class Group extends Base
30 */ 31 */
31 public static function getRouteByGroupId($gid) 32 public static function getRouteByGroupId($gid)
32 { 33 {
33 - try {  
34 - $group = self::where(['id' => $gid, 'status' => self::STATUS_NORMAL])->first();  
35 - $group_route = Menu::where(['status' => Menu::STATUS_NORMAL])->whereIn('id', $group->rights)->pluck('route_name')->toArray();  
36 - return $group_route;  
37 - } catch (\Exception $e) { 34 + $group = self::where(['id' => $gid, 'status' => self::STATUS_NORMAL])->first();
  35 + if(!$group){
38 return []; 36 return [];
39 } 37 }
  38 + $routes = Menu::where(['status' => Menu::STATUS_NORMAL])->whereIn('id', $group->rights)->pluck('route_name')->toArray();
  39 + return array_filter($routes);
40 } 40 }
41 41
42 public function getRightsAttribute($value) 42 public function getRightsAttribute($value)
43 { 43 {
44 - return Arr::s2a($value); 44 + return Arr::setToArr($value);
45 } 45 }
46 46
47 public function setRightsAttribute($value) 47 public function setRightsAttribute($value)
48 { 48 {
49 - $this->attributes['rights'] = Arr::a2s($value); 49 + $this->attributes['rights'] = Arr::arrToSet($value);
50 } 50 }
51 } 51 }
1 <?php 1 <?php
2 2
3 -namespace App\Models; 3 +namespace App\Models\Manage;
4 4
  5 +use App\Models\Base;
5 use Illuminate\Support\Facades\Session; 6 use Illuminate\Support\Facades\Session;
6 7
7 -class ManageLoginLog extends Base 8 +class LoginLog extends Base
8 { 9 {
9 //设置关联表名 10 //设置关联表名
10 protected $table = 'gl_manage_login_log'; 11 protected $table = 'gl_manage_login_log';
1 <?php 1 <?php
2 2
3 -namespace App\Models; 3 +namespace App\Models\Manage;
  4 +
  5 +use App\Models\Base;
4 6
5 class Manage extends Base 7 class Manage extends Base
6 { 8 {
1 <?php 1 <?php
2 2
3 -namespace App\Models; 3 +namespace App\Models\Manage;
  4 +
  5 +use App\Models\Base;
4 6
5 class Menu extends Base 7 class Menu extends Base
6 { 8 {
7 - protected $table = 'gl_menu'; 9 + protected $table = 'gl_manage_menu';
8 10
9 const STATUS_NORMAL = 0; 11 const STATUS_NORMAL = 0;
10 const STATUS_ABNORMAL = 1; 12 const STATUS_ABNORMAL = 1;
@@ -251,25 +251,23 @@ class UploadService extends BaseService @@ -251,25 +251,23 @@ class UploadService extends BaseService
251 /** 251 /**
252 * 文件地址转本地路径 252 * 文件地址转本地路径
253 * @param $url 253 * @param $url
254 - * @param string $disk  
255 * @return array|string|string[] 254 * @return array|string|string[]
256 * @author zbj 255 * @author zbj
257 * @date 2023/4/20 256 * @date 2023/4/20
258 */ 257 */
259 - public function url2path($url, $disk = 'upload'){  
260 - $upload_url = config('filesystems')['disks'][$disk]['url']; 258 + public function url2path($url){
  259 + $upload_url = config('filesystems')['disks'][$this->config['disk']]['url'];
261 return str_replace($upload_url . '/', '', $url); 260 return str_replace($upload_url . '/', '', $url);
262 } 261 }
263 262
264 /** 263 /**
265 * 本地路径转链接 264 * 本地路径转链接
266 * @param $path 265 * @param $path
267 - * @param string $disk  
268 * @return string 266 * @return string
269 * @author zbj 267 * @author zbj
270 * @date 2023/4/20 268 * @date 2023/4/20
271 */ 269 */
272 - public function path2url($path, $disk = 'upload'){  
273 - return Storage::disk('upload')->url($path); 270 + public function path2url($path){
  271 + return Storage::disk($this->config['disk'])->url($path);
274 } 272 }
275 } 273 }
  1 +{{--@extends('admin.app')--}}
  2 +
  3 +{{--@section('content')--}}
  4 +
  5 + <div id="content" class="main-content">
  6 + <div style="text-align: center;font-size: 40px;color: #afafaf;padding: 100px 0;">
  7 + 无权限
  8 + </div>
  9 + </div>
  10 +
  11 +{{--@endsection--}}
  12 +
  13 +
  14 +{{--@section('script')--}}
  15 +
  16 +{{--@endsection--}}
@@ -12,35 +12,37 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w @@ -12,35 +12,37 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w
12 12
13 //管理员 13 //管理员
14 Route::prefix('manage')->group(function () { 14 Route::prefix('manage')->group(function () {
15 - Route::get('/', [Aside\ManageController::class, 'list'])->name('admin.manage');  
16 - Route::get('/info', [Aside\ManageController::class, 'info'])->name('admin.manage_info');  
17 - Route::post('/save', [Aside\ManageController::class, 'save'])->name('admin.manage_save');  
18 - Route::any('/delete', [Aside\ManageController::class, 'delete'])->name('admin.manage_delete');  
19 - }); 15 + Route::get('/', [Aside\Manage\ManageController::class, 'list'])->name('admin.manage');
  16 + Route::get('/info', [Aside\Manage\ManageController::class, 'info'])->name('admin.manage_info');
  17 + Route::post('/save', [Aside\Manage\ManageController::class, 'save'])->name('admin.manage_save');
  18 + Route::any('/delete', [Aside\Manage\ManageController::class, 'delete'])->name('admin.manage_delete');
20 19
21 - //菜单  
22 - Route::prefix('menu')->group(function () {  
23 - Route::get('/', [Aside\MenuController::class, 'list'])->name('admin.menu');  
24 - Route::get('/info', [Aside\MenuController::class, 'info'])->name('admin.menu_info');  
25 - Route::post('/save', [Aside\MenuController::class, 'save'])->name('admin.menu_save');  
26 - Route::any('/delete', [Aside\MenuController::class, 'delete'])->name('admin.menu_delete');  
27 - }); 20 + //菜单
  21 + Route::prefix('menu')->group(function () {
  22 + Route::get('/', [Aside\Manage\MenuController::class, 'list'])->name('admin.menu');
  23 + Route::get('/info', [Aside\Manage\MenuController::class, 'info'])->name('admin.menu_info');
  24 + Route::post('/save', [Aside\Manage\MenuController::class, 'save'])->name('admin.menu_save');
  25 + Route::any('/delete', [Aside\Manage\MenuController::class, 'delete'])->name('admin.menu_delete');
  26 + });
28 27
29 - //权限组  
30 - Route::prefix('group')->group(function () {  
31 - Route::get('/', [Aside\GroupController::class, 'list'])->name('admin.group');  
32 - Route::get('/info', [Aside\GroupController::class, 'info'])->name('admin.group_info');  
33 - Route::post('/save', [Aside\GroupController::class, 'save'])->name('admin.group_save');  
34 - Route::any('/delete', [Aside\GroupController::class, 'delete'])->name('admin.group_delete');  
35 - }); 28 + //权限组
  29 + Route::prefix('group')->group(function () {
  30 + Route::get('/', [Aside\Manage\GroupController::class, 'list'])->name('admin.group');
  31 + Route::get('/info', [Aside\Manage\GroupController::class, 'info'])->name('admin.group_info');
  32 + Route::post('/save', [Aside\Manage\GroupController::class, 'save'])->name('admin.group_save');
  33 + Route::any('/delete', [Aside\Manage\GroupController::class, 'delete'])->name('admin.group_delete');
  34 + });
36 35
37 - //部门  
38 - Route::prefix('dept')->group(function () {  
39 - Route::get('/', [Aside\DeptController::class, 'list'])->name('admin.dept');  
40 - Route::get('/info', [Aside\DeptController::class, 'info'])->name('admin.dept_info');  
41 - Route::post('/save', [Aside\DeptController::class, 'save'])->name('admin.dept_save');  
42 - Route::any('/delete', [Aside\DeptController::class, 'delete'])->name('admin.dept_delete'); 36 + //部门
  37 + Route::prefix('dept')->group(function () {
  38 + Route::get('/', [Aside\Manage\DeptController::class, 'list'])->name('admin.dept');
  39 + Route::get('/info', [Aside\Manage\DeptController::class, 'info'])->name('admin.dept_info');
  40 + Route::post('/save', [Aside\Manage\DeptController::class, 'save'])->name('admin.dept_save');
  41 + Route::any('/delete', [Aside\Manage\DeptController::class, 'delete'])->name('admin.dept_delete');
  42 + });
43 }); 43 });
  44 +
  45 +
44 }); 46 });
45 47
46 //无需登录验证的路由组 48 //无需登录验证的路由组