<?php namespace App\Servers; use App\Models\Menu; use App\Models\MenuUrl; use App\Models\Role; use App\Models\ShopMenu; use App\Models\ShopMenuApp; use App\Models\ShopRole; /** * 权限验证 */ class PermissionServer { public static function verifyPermission($role_id, $clientRoute,$type=1) { $url_list = [ 'admin.index', 'admin.ajaxIndex', 'admin.not.permission', 'admin.oneImage', 'admin.good.select', 'admin.send_code', 'admin.auth.password', 'admin.auth.password.save', 'admin.menu.parentMenu', ]; if (in_array($clientRoute, $url_list)) { return true; } // return true; $client_id = MenuUrl::where('url', $clientRoute)->where('type',$type)->value('menu_id'); // dd($client_id,$clientRoute); if (empty($client_id)) { $client_info = MenuUrl::create([ 'url_name' => '', 'url' => $clientRoute, 'menu_id' => 0, 'status' => 0, 'type' => $type, ]); $client_id = $client_info->{'id'}; } $cache_name = 'role_url_ids' . $role_id; $url_ids=RedisDataServer::creatServer()->getData($cache_name,'json'); if(empty($url_ids)){ $permission_ids = Role::where('id', $role_id)->value('permission_ids'); $url_ids = explode(',', $permission_ids); RedisDataServer::creatServer()->setData($cache_name,$url_ids,'json',30); } if (empty($url_ids) || !in_array($client_id, $url_ids)) { return false; } return true; } }