Closed wasdujk closed 2 years ago
IndexController onInit 做了什么
public function onInit() { $fetchMerInfo = $this->client->get("/pi/getRoles"); $code = $fetchMerInfo->getStatusCode(); $responseBody = (string)$fetchMerInfo->getBody();
try {
// 请求成功
if ($code === 200) {
$body = json_decode($responseBody, true);
$data = $body['data'];
foreach ($data as $item) {
// 根据接口,重载所有权限信息
// 1.遍历删除所有role
Enforcer::deletePermissionsForUser($item['role_name']);
if ($item['status']) {
$nodes = $item['nodes'];
$rules = $item['rules'];
// 2.遍历网点列表装载权限
foreach ($nodes as $node) {
foreach ($rules as $rule) {
Enforcer::addPermissionForUser($item['role_name'], $node, $rule);
}
}
}
}
}
} catch (\Exception $e) {
var_dump([
'm' => $e->getMessage(),
'l' => $e->getLine(),
'f' => $e->getFile()
]);
}
}
/config/autoload/server.php
... 'callbacks' => [ // 在里面重载所有角色的权限 Event::ON_START=> [App\Controller\IndexController::class, 'onInit'], Event::ON_WORKER_START => [Hyperf\Framework\Bootstrap\WorkerStartCallback::class, 'onWorkerStart'], Event::ON_PIPE_MESSAGE => [Hyperf\Framework\Bootstrap\PipeMessageCallback::class, 'onPipeMessage'], Event::ON_WORKER_EXIT => [Hyperf\Framework\Bootstrap\WorkerExitCallback::class, 'onWorkerExit'], ],
异常内容
PHP Warning: Swoole\Server::sendMessage(): can't send messages to self in /www/wwwroot/test/vendor/donjan-deng/hyperf-casbin/src/Listener/OnPolicyChangedListener.php on line 42