Browse Source

获取用户菜单权限通过path查询

kely 9 months ago
parent
commit
91d33ad8ce

+ 9 - 4
app/Http/Controllers/API/UserController.php

@@ -30,15 +30,20 @@ class UserController extends Controller
             ->get();
 //            ->filter(fn(Menu $menu) => Auth::user()->can($menu->permission));
 
-        $items = [];
+
         $userPerminssion=$user->role->permissions->pluck('name')->toArray();
-        foreach ($menus as $menu) {
+
+        $flattenedPaths = [];
+        foreach ($menus as $index=> $menu) {
             if(in_array($menu->permission,$userPerminssion)){
-                $items[] = $menu->name;
+                $individualPaths = explode(',', $menu->path);
+                $flattenedPaths = array_merge($flattenedPaths, $individualPaths);
             }
         }
 
-        $user->menus = $items;
+        $userHasMenu=Menu::query()->whereIn('id',$flattenedPaths)->pluck('name')->toArray();
+
+        $user->menus = $userHasMenu;
 
         return new UserInfoResource($user);
     }

+ 29 - 0
database/migrations/2024_05_24_212547_add_path_to_menus.php

@@ -0,0 +1,29 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration
+{
+    /**
+     * Run the migrations.
+     */
+    public function up(): void
+    {
+        Schema::table('menus', function (Blueprint $table) {
+            $table->string("path")->nullable();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     */
+    public function down(): void
+    {
+        Schema::table('menus', function (Blueprint $table) {
+            //
+            $table->dropColumn(['path']);
+        });
+    }
+};