From 6520d8bd6f5485cdd85e7270af61541d1f392a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=B8=96=E7=95=8C?= <642747453@qq.com> Date: Thu, 4 Aug 2022 18:13:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20#20220804=20=E8=A7=92=E8=89=B2=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Commands/UpdateSuperPermissions.php | 6 +- .../Controllers/Goods/GoodsSkusController.php | 1 - app/Http/Controllers/Menu/MenusController.php | 16 +- .../Permission/PermissionsController.php | 12 +- app/Http/Kernel.php | 1 + app/Http/Middleware/CheckPermissions.php | 38 +++ app/Models/User.php | 5 + config/filesystems.php | 4 + .../2022_07_26_105818_create_logs_table.php | 2 +- database/seeds/PermissionsTableSeeder.php | 18 +- resources/lang/zh-CN/permission.php | 234 ++++++++++++++++++ resources/templates/goods_skus_import.xlsx | Bin 0 -> 10134 bytes routes/api.php | 13 +- routes/web.php | 2 +- 14 files changed, 326 insertions(+), 26 deletions(-) create mode 100644 app/Http/Middleware/CheckPermissions.php create mode 100644 resources/lang/zh-CN/permission.php create mode 100644 resources/templates/goods_skus_import.xlsx diff --git a/app/Console/Commands/UpdateSuperPermissions.php b/app/Console/Commands/UpdateSuperPermissions.php index 637d6f8..c662b0b 100644 --- a/app/Console/Commands/UpdateSuperPermissions.php +++ b/app/Console/Commands/UpdateSuperPermissions.php @@ -2,6 +2,7 @@ namespace App\Console\Commands; +use App\Models\User; use Illuminate\Console\Command; use Spatie\Permission\Models\Permission; use Spatie\Permission\Models\Role; @@ -39,9 +40,12 @@ class UpdateSuperPermissions extends Command */ public function handle() { - $role = Role::query()->where('name', '超级管理员')->find(1); + $roleName = '超级管理员'; + $role = Role::query()->where('name', $roleName)->find(1); $permissions = Permission::query()->get(); $role->syncPermissions($permissions); + $user = User::query()->find(1); + $user->assignRole($role); $this->info('更新成功'); } } diff --git a/app/Http/Controllers/Goods/GoodsSkusController.php b/app/Http/Controllers/Goods/GoodsSkusController.php index 97053f1..e04ad52 100644 --- a/app/Http/Controllers/Goods/GoodsSkusController.php +++ b/app/Http/Controllers/Goods/GoodsSkusController.php @@ -25,7 +25,6 @@ class GoodsSkusController extends Controller { public function __construct(Request $request) { -// $this->middleware(['role:super-admin','permission:publish articles|edit articles']); $this->log = new LogModel([ 'module' => 'goods', 'action' => $request->getMethod(), diff --git a/app/Http/Controllers/Menu/MenusController.php b/app/Http/Controllers/Menu/MenusController.php index ee53406..dd50b68 100644 --- a/app/Http/Controllers/Menu/MenusController.php +++ b/app/Http/Controllers/Menu/MenusController.php @@ -6,6 +6,8 @@ use App\Http\Controllers\Controller; use App\Models\Log as LogModel; use App\Models\Menu; use App\Http\Resources\MenusResource; +use App\Models\User; +use App\Utils\ArrayUtils; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\Rule; @@ -22,10 +24,18 @@ class MenusController extends Controller ]); } - public function index() + public function index(Request $request) { - $menus = Menu::query()->get(); - $menus = FormatUtils::formatTreeData($menus, 0); + $permissions = $request->user()->getPermissionsViaRoles()->toArray(); + $permissions = array_column($permissions, 'name'); + $menus = Menu::query()->get()->toArray(); + $hasPermissionMenus = []; + foreach ($menus as $menu) { + if (in_array($menu['code'], $permissions, true)) { + $hasPermissionMenus[] = $menu; + } + } + $menus = FormatUtils::formatTreeData($hasPermissionMenus, 0); return MenusResource::collection($menus); } diff --git a/app/Http/Controllers/Permission/PermissionsController.php b/app/Http/Controllers/Permission/PermissionsController.php index 7507489..112f82b 100644 --- a/app/Http/Controllers/Permission/PermissionsController.php +++ b/app/Http/Controllers/Permission/PermissionsController.php @@ -4,6 +4,8 @@ namespace App\Http\Controllers\Permission; use App\Http\Controllers\Controller; use App\Models\Log as LogModel; +use App\Utils\ArrayUtils; +use App\Utils\FormatUtils; use Spatie\Permission\Models\Permission; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; @@ -23,9 +25,15 @@ class PermissionsController extends Controller public function index() { - $permissions = Permission::query()->get(); + $permissions = Permission::query()->get()->toArray(); + $permissions = ArrayUtils::index($permissions, 'name'); + $routes = include(resource_path('lang/zh-CN/permission.php')); + foreach ($routes as $key => &$route) { + $route['id'] = $permissions[$key]['id']; + } + $routes = FormatUtils::formatTreeData($routes, 0); - return PermissionsResource::collection($permissions); + return PermissionsResource::collection($routes); } public function store(Request $request) diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index b1c73d6..cf52c70 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -63,6 +63,7 @@ class Kernel extends HttpKernel 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class, 'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class, + 'check.permissions' => \App\Http\Middleware\CheckPermissions::class, ]; /** diff --git a/app/Http/Middleware/CheckPermissions.php b/app/Http/Middleware/CheckPermissions.php new file mode 100644 index 0000000..b8f8ae4 --- /dev/null +++ b/app/Http/Middleware/CheckPermissions.php @@ -0,0 +1,38 @@ +user()->getPermissionsViaRoles()->toArray(); + $permissions = array_column($permissions, 'name'); + if (in_array($currentRouteName, $permissions, true)) { + return $next($request); + } + } + + $res = [ + 'httpCode' => 403, + 'errorCode' => 403403, + 'errorMessage' => '您没有使用此功能的权限', + ]; + return response($res, 403); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index b6d8d5e..88194f2 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -43,4 +43,9 @@ class User extends Authenticatable { $this->attributes['password'] = Hash::make($value); } + + public function isRoot() + { + return $this->name === 'erpAdmin'; + } } diff --git a/config/filesystems.php b/config/filesystems.php index 9df9941..b2f1d2f 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -76,6 +76,10 @@ return [ 'isCName' => false, // 是否使用自定义域名,true: 则Storage.url()会使用自定义的cdn或域名生成文件url, false: 则使用外部节点生成url 'debug' => true ], + 'root' => [ + 'driver' => 'local', + 'root' => '/' + ] ], ]; diff --git a/database/migrations/2022_07_26_105818_create_logs_table.php b/database/migrations/2022_07_26_105818_create_logs_table.php index 2a30d1c..da9c3c2 100644 --- a/database/migrations/2022_07_26_105818_create_logs_table.php +++ b/database/migrations/2022_07_26_105818_create_logs_table.php @@ -24,7 +24,7 @@ class CreateLogsTable extends Migration $table->text('after_update')->nullable()->comment('更新后数据'); $table->text('message')->nullable()->comment('备注信息'); $table->bigInteger('user_id')->comment('操作人id'); - $table->index('target_type', 'target_id', 'target_field'); + $table->index(['target_type', 'target_id', 'target_field']); $table->timestamps(); }); } diff --git a/database/seeds/PermissionsTableSeeder.php b/database/seeds/PermissionsTableSeeder.php index 0df8a79..c0aa0f7 100644 --- a/database/seeds/PermissionsTableSeeder.php +++ b/database/seeds/PermissionsTableSeeder.php @@ -12,17 +12,11 @@ class PermissionsTableSeeder extends Seeder */ public function run() { - DB::table('permissions')->insert([ - ['name' => 'GOODS_MANAGE', 'guard_name' => 'api'], - ['name' => 'GOODS_LIST', 'guard_name' => 'api'], - ['name' => 'GOODS_TYPE', 'guard_name' => 'api'], - ['name' => 'GOODS_BRAND', 'guard_name' => 'api'], - ['name' => 'SHOP_MANAGE', 'guard_name' => 'api'], - ['name' => 'USER_MANAGE', 'guard_name' => 'api'], - ['name' => 'SYSTEM_MANAGE', 'guard_name' => 'api'], - ['name' => 'ROLE_MANAGE', 'guard_name' => 'api'], - ['name' => 'PERMISSION_MANAGE', 'guard_name' => 'api'], - ['name' => 'SYSTEM_LOG', 'guard_name' => 'api'], - ]); + $routes = include(resource_path('lang/zh-CN/permission.php')); + $data = []; + foreach ($routes as $key => $route) { + $data[] = ['name' => $key, 'guard_name' => 'api']; + } + DB::table('permissions')->insert($data); } } diff --git a/resources/lang/zh-CN/permission.php b/resources/lang/zh-CN/permission.php new file mode 100644 index 0000000..7493111 --- /dev/null +++ b/resources/lang/zh-CN/permission.php @@ -0,0 +1,234 @@ + [ + 'id' => 1, + 'name' => '商品管理', + 'parent_id' => 0, + ], + 'GOODS_LIST' => [ + 'id' => 2, + 'name' => '商品列表', + 'parent_id' => 1, + ], + 'goods.index' => [ + 'id' => 20, + 'name' => '商品列表', + 'parent_id' => 2, + ], + 'goods.store' => [ + 'id' => 21, + 'name' => '新增商品', + 'parent_id' => 2, + ], + 'goods_skus.index' => [ + 'id' => 22, + 'name' => '规格列表', + 'parent_id' => 2, + ], + 'goods_skus.store' => [ + 'id' => 23, + 'name' => '新增规格', + 'parent_id' => 2, + ], + 'goods_skus.show' => [ + 'id' => 24, + 'name' => '规格查看', + 'parent_id' => 2, + ], + 'goods_skus.udpate' => [ + 'id' => 25, + 'name' => '规格更新', + 'parent_id' => 2, + ], + 'goods_sku.batch_update' => [ + 'id' => 26, + 'name' => '上新/盘点', + 'parent_id' => 2, + ], + 'goods_sku.single_update' => [ + 'id' => 27, + 'name' => '字段更新', + 'parent_id' => 2, + ], + 'GOODS_TYPE' => [ + 'id' => 3, + 'name' => '商品种类', + 'parent_id' => 1, + ], + 'goods_types.index' => [ + 'id' => 30, + 'name' => '列表', + 'parent_id' => 3, + ], + 'goods_types.store' => [ + 'id' => 31, + 'name' => '新增', + 'parent_id' => 3, + ], + 'goods_types.show' => [ + 'id' => 32, + 'name' => '查看', + 'parent_id' => 3, + ], + 'goods_types.update' => [ + 'id' => 33, + 'name' => '更新', + 'parent_id' => 3, + ], + 'goods_types.destroy' => [ + 'id' => 34, + 'name' => '删除', + 'parent_id' => 3, + ], + 'GOODS_BRAND' => [ + 'id' => 4, + 'name' => '商品品牌', + 'parent_id' => 1, + ], + 'goods_brands.index' => [ + 'id' => 40, + 'name' => '列表', + 'parent_id' => 4, + ], + 'goods_brands.store' => [ + 'id' => 41, + 'name' => '新增', + 'parent_id' => 4, + ], + 'goods_brands.show' => [ + 'id' => 42, + 'name' => '查看', + 'parent_id' => 4, + ], + 'goods_brands.update' => [ + 'id' => 43, + 'name' => '更新', + 'parent_id' => 4, + ], + 'goods_brands.destroy' => [ + 'id' => 44, + 'name' => '删除', + 'parent_id' => 4, + ], + // 店铺管理 + 'SHOP_MANAGE' => [ + 'id' => 5, + 'name' => '店铺管理', + 'parent_id' => 0, + ], + 'shops.index' => [ + 'id' => 50, + 'name' => '列表', + 'parent_id' => 5, + ], + 'shops.store' => [ + 'id' => 51, + 'name' => '新增', + 'parent_id' => 5, + ], + 'shops.show' => [ + 'id' => 52, + 'name' => '查看', + 'parent_id' => 5, + ], + 'shops.update' => [ + 'id' => 53, + 'name' => '更新', + 'parent_id' => 5, + ], + 'shops.destroy' => [ + 'id' => 54, + 'name' => '删除', + 'parent_id' => 5, + ], + // 用户管理 + 'USER_MANAGE' => [ + 'id' => 6, + 'name' => '用户管理', + 'parent_id' => 0, + ], + 'user.index' => [ + 'id' => 60, + 'name' => '列表', + 'parent_id' => 6, + ], + 'user.store' => [ + 'id' => 61, + 'name' => '新增', + 'parent_id' => 6, + ], + 'user.show' => [ + 'id' => 62, + 'name' => '查看', + 'parent_id' => 6, + ], + 'user.update' => [ + 'id' => 63, + 'name' => '更新', + 'parent_id' => 6, + ], + 'user.destroy' => [ + 'id' => 64, + 'name' => '删除', + 'parent_id' => 6, + ], + // 系统管理 + 'SYSTEM_MANAGE' => [ + 'id' => 7, + 'name' => '系统管理', + 'parent_id' => 0, + ], + 'ROLE_MANAGE' => [ + 'id' => 8, + 'name' => '角色管理', + 'parent_id' => 7, + ], + 'role.index' => [ + 'id' => 80, + 'name' => '列表', + 'parent_id' => 8, + ], + 'role.store' => [ + 'id' => 81, + 'name' => '新增', + 'parent_id' => 8, + ], + 'role.show' => [ + 'id' => 82, + 'name' => '查看', + 'parent_id' => 8, + ], + 'role.update' => [ + 'id' => 83, + 'name' => '更新', + 'parent_id' => 8, + ], + 'role.permission' => [ + 'id' => 84, + 'name' => '设置权限', + 'parent_id' => 8, + ], + 'PERMISSION_MANAGE' => [ + 'id' => 9, + 'name' => '权限管理', + 'parent_id' => 7, + ], + 'permissions.index' => [ + 'id' => 90, + 'name' => '列表', + 'parent_id' => 9, + ], + // 系统日志 + 'SYSTEM_LOG' => [ + 'id' => 10, + 'name' => '系统日志', + 'parent_id' => 0, + ], + 'logs.index' => [ + 'id' => 100, + 'name' => '列表', + 'parent_id' => 10, + ], +]; diff --git a/resources/templates/goods_skus_import.xlsx b/resources/templates/goods_skus_import.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..16d6c963a0bdbbd2c24f7e0173f6c6857bfe9ae4 GIT binary patch literal 10134 zcmeHtg;yNe_I2a#E(z{Vkl-FH5D38`1a~L6ySuxG-~@NK#$6f@1PP%D1h-!&Gw;g` zGv8nEURAG>Rdx2NzW3~V_c`Y($-}_n0^k9N004jjAja!IVFLvKz`_9lH~>UwZ3$Z& zCu18Yy*F-l#*VtIuGUuM`LNLRxd3R$`~Tbii(8=l&9F@mJ7&B3frw;>T3B94X(=LU z3#m5s9zv>Xyasi{4iWvW7oCZ+Y7JsHjk48*Htne(VZ}17rnu;5E7ohxSJdxNK15YG zd>6Wt$&vCeELV%Fjg8>WB}4;*;b-a*UN$Wouv$<)P}1OY*C9XK?LJZ57cUDHk)Ua3 z{89>iwfI$NxJMIOp5Z;A!E@Ju*DSi9249mqDRj@e;$*$3`lX&Cy1-$ zKSPD}Lp_vmFk3v2B)uvFp|57;i;-<4e@7>|hw$v-0S2J-H=5R~vQzzl_})v%QxphI z^&E_?9NAcZ9{)$r|6)%5<*%2=E4=DuM-2wc+=dKY%&o>^ip#r*$+S|u@%EKn!KjZa zpe9-Eq$9ZAHRFWq@yiWCE=DTDK<^-!cF%nJ@X)wM}nxEEyg65jRWhK;{ zxXQPR;Oa)++=GOP44;MM;(aucP`;Ok(`k4^js~Vnm7YUZ6lYh&sw!rD=G6w-4*ZmE zdPY`Vr;-_+ICq{bikU;NDY>vOIVYqCX>!kewCcFNk7T*^@gnt>4IK~rN061QL1wIf zk_6QU+G7zykUDq(00Yu8u2yU=whopCwzif(=dp5CkWB$Qrk9@i1JqTPzh5kD(wk;X z>%vvl*{|}2Kqxv5sL|zOS=F<37gP%K^c0&``tR>z_=KN160%k~yO{_oQxLI<2eMfi zO;UbAVw$IDY0XL(GLn%B4>W4arEo9C)XHw}gPf7H z)9VH^w_B{H%uof@bdCvmUyV=ivy9(!>@8RydrYy@hXU&;n+%VJmA3 z9Pm+CujF(Ab#t-85o93z0Xl}otlbSmnQWRpoEdJxYV3PD%_{`v2gKlSYz6wUY86R< z_zT&(alecJ_!Oq(shbxq@C+mC)C)<#*f^|@`GE}Sfh8y^9Yuq1p>l6_N(_ixv!cH) z4-u1Y3lgyVEn_^Bk`lvxaw_gOdp_IASVruT>3~^duki5ZrIM?Qs5mBiBsKcb>+vwT zC^;hvVuT0*BrI0XiGBA7q$HC5k$#f>ILEAqfJ>Qj!$$J8U=_y)Vdq?0f3qA7_xUDf#%+R-&TU$q5p9((ip9kyCket2vQY{iW`gWn=rnho6 z?fOm~@x`UssBF=+7dN+4s384n+E;?5`lnV1c=FL)Zx8Q`EpBYgysG%$tu`JJtpW{K z&t?~eswp=?m}weiXID-w66)R6gbKtjRGMB2 zWwL)-Qz{jpRw}Ddo-OT|(#4Trnr~3#EO|a@8mj64m9inGpE_c&0Pr&Q&;EB@* zZ#h+MB?1`t#o9b%uZcRUMnm`Z4#RW71&+bBzA*k(Gwdk-7U7m&golEOIZBM>S0N^8 z*m*W^VZ6uP&BbL{apWbmpd73BLMx(4Mwgxw{>84qj8iH-75^(zMAa2*4Pmg1TBk988p z7F~^bc{Ui^U^npCpz{Sc`W6h%SvONjI5w<1jult{&UWl{3d+iI8Lk(cA!2d$SZwm)%n5h$n5gCJJujmfZ!{s5_)( z@=r^-g*=0u$U}yt$$S{%9e486T2;ZDPU1H}hEC84^T-dd$@cKz+&ZME|LHRKcHHm{ zFaSU&5&%F5dE?J<)6vY>*vXOY*NNlj0GgSg5VOpV84OOkCSzU?!+F;zFR7ubmFG}) z?dF_`RC6qCA%IeH-~(P1)d)jbrmw*PfuDi_Wx5_gYnv73h%>O{nXvaB!-m?XE*dfmdzaN`efW4vQxvFm-y(=g) zrm_z)RO=Jdo|=$qPE%>nD!#s=(Fd=$C3JlS=ZeC15yH{b2wGaY*l)szI8a~Lkz?QG z#A!;>lH}R0vq8;&4DRHg79Byr>sY!Yhy}5}E95i5moKo2X4`<9ryc;BU@?}9LpMl{ zxHeQ5UgqWJOlDe%t51D6^ou9<)EEiPmqZoTxVz!Xh>Wrj43>?$(`;|jj$lf_zp3R} z?m!!e|NQW)?|&T<6SZvu*fFIV{o4Sf2=uZ>v086Uh=!yTMAF}I6n#6gl!JBrfWhFi zmmRm`K{$D|cp86HG|`4J+I!X6%wqkP=!wehYpUyC^7~gSNybdc^}a(5(xcgi zS_wzBuY+5%ai>7^@L%V)4)~T6YZ86+qj=^(S8<4MU6wEI%qiDCbCWsc5D#A?#Yda{ zfYFoTT){7+W#u+!p$I*G`0CbVQue%9w{3&B2)UM&+9!UD*^R^EV4qua!Yw$irOS#e z8#D4oKTG#V$0|izMC;2kV)}Zc2=_knu&OQI3rTO~$wDK#d*sV!{)8&$+kRC_{VUi4 z;#}c9=7NmUZ;vlXD=N%=I$FcMMq%O>{+;UzBEHOl5PjrJ{4?JF#dRk$V{2o!U&miG zKh&JC1@Yi^U@Sh6?;UA1&@7=J;5Jy%Stc}?t)L4{^H|s9NlFwZ5KH;#x)8DFk~kAp zgV1|@p+V*;cf2eOM=^_3G}=ZldGF$&S0@P(sSiA2$ksisFC`Xi1rS6Y{hBWueV$aT!eFv5{HRs^O>wAsf8MTGPPrWE9wPq@0TP&3B!*X2qNZ@bO9 zEwL+HID_n~#>uysJo#s4ys<I7asboiRc`06*4>TLe93A09-NQ=<~eQs5yI zinUNX(K}Y5SKeMR?tvFE`9eYoroe!x%p(L?lKl=H z#G`=ngG3;7+^gg?niPc8H1Ox}aZEKvm{QwNH}Prtq&xp&1Tw9eZwH=m7B()o!u)Gv zp=Z|oZMkc$b`N4>M+L_21ihA@giO8S4`0Q9y9d*FEVO!_iR)TC8**+IRxdj<+BNWc zK`(^G6du#0Rppo(S1e)nh6JfTW5sF>pF;;<8wQ4VBKDI#Cv68crEu63H2xWP{aNN| z&snAb%7A`FRr(w)q26(YGwR58s=}#|MFs6eL9?qJHPD%Dv99-Ce0#52^Qe{QXim|& z@_f(|diva2#w;t1niwB@>^+sy=6mYdp~^rhP)|P1YL!a;_!cd$sC5FK1}9(jHLMNS)vP@#MOrDpNAuG<* zOQ>M4oOP`~too%zw|F*}PNK$}M2>iDK4hpKHx6Z4R7ID;>>$%+r5dZtZ4s7*{|NQ` z+AfVb*SSgOfRaB1rZ#Nogy3E`(Kyb2N?LFnrc#nlJs=P z0XZTWOEb?9aPS3sybUeUgo!KVk2*^h&gm-_de2I{`47O`)$Zwd7K&B6?>|&LNEMq6yzDa>YpRxLO~|c)i1VmO}(pIHR>Jw zHL93YH_Kw4Twfsac*AZ@g(R%g;OP`$ckmb?;(J{!*|U-yhYRBO6Ju3o8o%H_!eQIH zRu&3ne9J`m<~A6tswLK_ybmu{z=LS3*|O=)=3_4eyB@cs4{CT13$zSp8noriwW>K;0icjrQBT|u?_eu#3d$f2}Y znULoJzbW#e3rQRqx>iy(z7(Fw59&L$*6AN#&nnjs8{oY!%xfb3;&xAz`=EQuT)#b_ z{F^|HsYi{+h6q$30sw&a$E4-x<7d*fCcL_MRXf;dxm#H&8Hyenv!$ zg@%iVUY*7^#@Uq4HIr7H(&ZJBRbNF|{lO*W9*IuFrxu%U{y9nkeVEsF%@g;@f`0+p z9G(j2zAY+rdZ?=2^_h*SH9@?pI<#q{KyQ?J#v9X6g^IaId z?<05u1NsMTu#Ll+qEHLb6D^tJ5trAR9?o~}Z!kQ{$o;=tTcVZc$vV3zu*a?u>&h3< z)Ve&Yp_|Z0CuU^IXQD4lUVV3&nKPgZcTc$6zM(CFEtW)BYK;7$L|e~VKJ>M?SfkVC z-V#V&p}`yT{Ap8EFSQnZmITZ1vP9Fp(al{Syo#*wMDNg+NmpcIR#G zxswezIjRqEnvRZVc7&hru35&Gw7O#VY}yS;jEO@D!3zWpPIqxBOkf9)3PTVZ$W9G z@@a1DZ)!B(=aqu4yIG;@9uh$Envg}v2BS(F9Y#tAOv*}#q{al-*0Q5{tn?B@n@*hF zIZtYzY|gTa@g=nCeB+#L6pw#*lS00tOS^I>{rn2TjekaWM%O()myjSI4MHB=KgnaJ z?_g}C;^bg%WBQ9j<*E~}aKs4PdG{aK$2D7L;G-B?NAki3V8RfhcE_A^Gn`BpvKZpD zwovS6 z`7Fh@^Rpg_r=za(E31fRXB}lZjSZ1kUE-39wV$TZptPft1hJDSIc*TMDy>)TUY-se zwFtIz?Gn9T4`1~|iZO`|c+w1Ng2}GWF3C7v5j2S#$ga|PQzd2pDKHPEPOiqw;qE@6 zS#D|t_nY3AqcXo(GA$Q&w1J}$aOciI-mMi^db)m{v&D4W9_dgLl_SULD=fxT#5A!Y zw}k7E;Ik@BV8%+-LDV%_whwMr_LN=2#npTqR_`3+xYJz`EZ_Z&%SsZ^xSzB*O z8N+qB-3{NX``{?eH_9o!qp>TJ_uDpg_p8Pbr;6q zdKn&+5_^Gr=TS>)+_ke~H?hN$aU=MV!~{K#dA0>QXxos$toqnvnWa;#=J~-2E)t7i zto{sZM>>q6qFmTutOg!RO^`D69bvC`-%?F9(#KfgFH5pvZtTNX5hRo4r54sFdI)uF ziuGXTZ7=lzexcWz_lMD5WP&yYo#Qem6M?dPvG0WQW%!1qzMc3Qh<$ZA&$jeJhb^`q z9XUORHt>t(vx87t+c`oXlH!bvoU(gj(Pi#}w; zpNfgz<@JqI`r*Mgs8Aa2`d{Lp_m3x!GBtAcuJqTrVS9x1<_)>&lYdE7fmXiVK)xUh zWkT=6yE*1TuMWo1Ob$BbPbg+lZCzjq&*v#4_n9ox`3#~6UiPUI2>3{6l%P%n0f zqzjnb6V3EWX>k_y4qi{a%6%};Ayn|wvUE<7vGfMxN=>mb4fd0H*|fCu6DLWW<27XF zE)Km#>0Z6;x(mg<;S_#u{uC(|@SmUP0HWQ+DOlIx6oEDpnU5}4*~r0{q?Y2;4)?)n zsp;4&r$Y)_1v>L^4~1G3+DDB1PUF;~9USP0U7=-C|8d$-#uxUJ)CMHh{bzS?`5joR zLAu)z67*w1a-~MLhDr{$c8+X@whqRBmcIX&B8Bk4Gaix(VJ8d%!>#9ScPPxX@JWFD zfR&_(inw6$6I&)8bJ={*TDP`Wf*%I;o?&W(cE!uKQ6I&Q%+my;w&b7-)aC6WIV>dc zZNIIep*c#a#@a9u@$8zHNNS15uj`-!29~}n_b>tF(H2_DMM0#IyD~tfw?$^=)>0fi zo=EX&U3`f+yG6;PEd_5k!oN#507!#2G3BdYvX9uI{V0nLb(ZNCFgh!YfG2+*3{6dM z$&Q40|6OZx`qnK^*o=ztLd#ZARO(O0}|gc)T1s-u~bZ>bwf7BI;+A z&vTivG9A!HllgC!ZA8}Ah4u8XS2E^Fm{V(18V}vjw>)QfpN2;-;+oZv3lfAiz?}ni zJ?;52a+#5byD&n$pQpxQ(U@`xyOpfpzweA*MBirZ?(CyK=~WS-<>sJGM0M{IB9}kz zZXD`>xZFRTkze-*RyyPfCPe6B{?!@v?d<;Nix4OLbIXkHhUk4rofGaFJ@_ap(}q4+ zR86^%$$haJAnUGf%#Y6~@83r}oNb))1pW}sc^Tx?^|YWas#p=EVoU9_wIKa^%M-L% z9+VpC0+*raknA_p!DXXTeRgoLjWdGHsLuHH39c1FSk}mAs+v$?QArpEDwGstHL75u zUD<`n5-y6RxYt*U^o3kDO;wBqo6}!!;7Lzr1VuhqOWDyR(&^g{!4GOifVo-Pk1nUj zEC>)a!Xq%tr;yF%uIBdk5~|p5+UDNDkwy6LCFg<*y0b>%$UYc+ObX&78j)Lq^%o)N z<1Vo=M=>^t&+penA@&-Lzf!amFkY&Vo7}`LSDm5{37o4(lO+SivIBj5yoGM>zCY~R zcFU4kcs;jyGWew+^BfJAl*bt!1_3D~kSPFvy3rz!vI9!+3Csm5%#m+xIh38N<`#=sBOPx1RdsbR_ScX@+u{F{oUUVzd@Eq8d7gwNXW zTR`imWIBoyv{xaSgsw~qlH2hYC&itv8{{0^lbn?4R5ew%I){bBkzka&#n zSW^B*KqY{$Z1pxk`3LcyPedPYD ec{s&i%>Nw6mE_?dJ_rDyLUvk+8*5Sjy!$`8Sa~J@ literal 0 HcmV?d00001 diff --git a/routes/api.php b/routes/api.php index 5c5adc8..4a047f0 100644 --- a/routes/api.php +++ b/routes/api.php @@ -16,7 +16,7 @@ use App\Http\Controllers\Goods\GoodsSkusController; | is assigned the "api" middleware group. Enjoy building your API! | */ -Route::middleware('auth:api')->group(function () { +Route::middleware(['auth:api', 'check.permissions'])->group(function () { // 用户 Route::resource('users', 'User\UsersController', ['only' => ['index', 'store', 'show', 'update', 'destroy']]); // 商品种类 @@ -33,17 +33,20 @@ Route::middleware('auth:api')->group(function () { Route::patch('single/goods_skus/{id}', [GoodsSkusController::class, 'updateField'])->name('goods_sku.single_update'); // 店铺 Route::resource('shops', 'Shop\ShopsController', ['only' => ['index', 'store', 'show', 'update', 'destroy']]); - Route::get('shop_platforms', [ShopsController::class, 'getPlatList'])->name('plat.list'); // 角色 Route::resource('roles', 'Role\RolesController', ['only' => ['index', 'store', 'show', 'update']]); Route::post('roles/{id}/permissions', [RolesController::class, 'addPermissions'])->name('role.permission'); // 权限 - Route::resource('permissions', 'Permission\PermissionsController', ['only' => ['index', 'store', 'show', 'update', 'destroy']]); - // 菜单 - Route::resource('menus', 'Menu\MenusController', ['only' => ['index', + Route::resource('permissions', 'Permission\PermissionsController', ['only' => ['index', // 'store', 'show', 'update', 'destroy' ]]); Route::post('upload', [UploadController::class, 'store'])->name('upload.file'); }); Route::post('/auth/login', [LoginController::class, 'login'])->name('auth.login'); + +// 菜单 +Route::resource('menus', 'Menu\MenusController', ['only' => ['index', +// 'store', 'show', 'update', 'destroy' +]])->middleware('auth:api'); +Route::get('shop_platforms', [ShopsController::class, 'getPlatList'])->name('plat.list')->middleware('auth:api'); diff --git a/routes/web.php b/routes/web.php index 0af6dd8..b342af8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -29,4 +29,4 @@ Route::get('/register', function () { return view('welcome'); })->name('register'); -Route::get('goods_skus/export', [GoodsSkusController::class, 'export'])->name('goods_skus.export'); +Route::get('goods_skus/export', [GoodsSkusController::class, 'export'])->name('goods_skus.export')->middleware('check.permissions');