作者 赵彬吉

update

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