mirror of
http://124.126.16.154:8888/singularity/hyperf-admin.git
synced 2026-01-15 05:15:06 +08:00
@@ -4,6 +4,7 @@ namespace HyperfAdmin\Admin\Controller;
|
||||
use Hyperf\Utils\Str;
|
||||
use HyperfAdmin\Admin\Model\FrontRoutes;
|
||||
use HyperfAdmin\Admin\Service\CommonConfig;
|
||||
use HyperfAdmin\Admin\Service\Menu;
|
||||
use HyperfAdmin\Admin\Service\ModuleProxy;
|
||||
use HyperfAdmin\BaseUtils\Constants\ErrorCode;
|
||||
use HyperfAdmin\BaseUtils\Guzzle;
|
||||
@@ -25,6 +26,21 @@ class SystemController extends AdminAbstractController
|
||||
'open_export' => false,
|
||||
'navbar_notice' => '',
|
||||
]);
|
||||
|
||||
if (isset($config['system_module']) && !$this->auth_service->isSupperAdmin()) {
|
||||
$user_id = $this->auth_service->get('id');
|
||||
|
||||
$role_ids = $this->permission_service->getUserRoleIds($user_id);
|
||||
|
||||
$router_ids = $this->permission_service->getRoleMenuIds($role_ids);
|
||||
|
||||
$modules = array_unique($this->permission_service->getModules($router_ids));
|
||||
|
||||
foreach ($config['system_module'] as $module_key => $module_value) {
|
||||
if(!in_array($module_value['name'], $modules))
|
||||
unset($config['system_module'][$module_key]);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->success($config);
|
||||
}
|
||||
|
||||
@@ -388,4 +388,18 @@ class PermissionService
|
||||
}
|
||||
throw new \RuntimeException('Handler not exist.');
|
||||
}
|
||||
|
||||
public function getModules($router_ids)
|
||||
{
|
||||
if(!$router_ids) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return FrontRoutes::query()
|
||||
->select(['module'])
|
||||
->whereIn('id', $router_ids)
|
||||
->get()
|
||||
->pluck('module')
|
||||
->toArray();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user