Explorar el Código

feat(menu): 添加商户权限控制功能

- 新增阿里巴巴选品库权限判断逻辑
- 添加数据库查询获取商户权限配置
- 扩展菜单过滤条件支持路由权限控制
- 为特定商户ID保留菜单项显示权限
- 实现动态菜单项显示与隐藏控制
- 优化代码结构并添加注释说明
shichen hace 3 meses
padre
commit
cd76456cb9
Se han modificado 1 ficheros con 14 adiciones y 7 borrados
  1. 14 7
      app/controller/admin/system/auth/Menu.php

+ 14 - 7
app/controller/admin/system/auth/Menu.php

@@ -206,23 +206,30 @@ class Menu extends BaseController
206
             $menus[$k] = $menu;
206
             $menus[$k] = $menu;
207
         }
207
         }
208
 
208
 
209
-        if($this->merchant){
210
-
211
-            foreach($menus as $key => $value){
212
-                if($value['menu_id'] == '1112' && $this->request->merId() != 439){
209
+        if ($this->merchant) {
210
+            // 获取是否拥有阿里巴巴选品库权限
211
+            $show = 0;
212
+            $isShowAlibaba = Db::name('merchant')->where('mer_id', $this->request->merId())->value('is_show_alibaba');
213
+            if ($isShowAlibaba) $show = 1;
214
+            foreach ($menus as $key => $value) {
215
+                if ($value['menu_id'] == '1112' && $this->request->merId() != 439) {
213
                     unset($menus[$key]);
216
                     unset($menus[$key]);
214
                 }
217
                 }
215
-                if($value['menu_id'] == '1127' && $this->request->merId() != 439){
218
+                if ($value['menu_id'] == '1127' && $this->request->merId() != 439) {
216
                     unset($menus[$key]);
219
                     unset($menus[$key]);
217
                 }
220
                 }
218
-                if($value['menu_id'] == '1103'){
221
+                if ($value['menu_id'] == '1103') {
219
                     unset($menus[$key]);
222
                     unset($menus[$key]);
220
                 }
223
                 }
224
+                if ($value['route'] == '/merchant/product/alibaba') {
225
+                    if ($show == 0) {
226
+                        unset($menus[$key]);
227
+                    }
228
+                }
221
             }
229
             }
222
         }
230
         }
223
 
231
 
224
 
232
 
225
-
226
         return app('json')->success(array_values(array_filter(formatCategory($menus, 'menu_id'), function ($v) {
233
         return app('json')->success(array_values(array_filter(formatCategory($menus, 'menu_id'), function ($v) {
227
             return 0 == $v['pid'];
234
             return 0 == $v['pid'];
228
         })));
235
         })));