Просмотр исходного кода

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

- 新增阿里巴巴选品库权限判断逻辑
- 添加数据库查询获取商户权限配置
- 扩展菜单过滤条件支持路由权限控制
- 为特定商户ID保留菜单项显示权限
- 实现动态菜单项显示与隐藏控制
- 优化代码结构并添加注释说明
shichen месяцев назад: 3
Родитель
Сommit
cd76456cb9
1 измененных файлов с 14 добавлено и 7 удалено
  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 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 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 219
                     unset($menus[$key]);
217 220
                 }
218
-                if($value['menu_id'] == '1103'){
221
+                if ($value['menu_id'] == '1103') {
219 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 233
         return app('json')->success(array_values(array_filter(formatCategory($menus, 'menu_id'), function ($v) {
227 234
             return 0 == $v['pid'];
228 235
         })));