feat(plugin hook): add client.subscribe.unavailable hook

This commit is contained in:
xboard
2025-07-16 00:08:30 +08:00
parent ac08199580
commit 6fdb083809

View File

@@ -44,7 +44,18 @@ class ClientController extends Controller
$userService = new UserService();
if (!$userService->isAvailable($user)) {
return response()->json(['message' => 'Account unavailable'], 403);
HookManager::call('client.subscribe.unavailable');
return response('', 200, ['Content-Type' => 'text/plain']);
}
return $this->doSubscribe($request, $user);
}
public function doSubscribe(Request $request, $user, $servers = null)
{
if ($servers === null) {
$servers = ServerService::getAvailableServers($user);
$servers = HookManager::filter('client.subscribe.servers', $servers, $user, $request);
}
$clientInfo = $this->getClientInfo($request);
@@ -55,9 +66,6 @@ class ClientController extends Controller
$protocolClassName = app('protocols.manager')->matchProtocolClassName($clientInfo['flag'])
?? General::class;
$servers = ServerService::getAvailableServers($user);
$servers = HookManager::filter('client.subscribe.servers', $servers, $user, $request);
$serversFiltered = $this->filterServers(
servers: $servers,
allowedTypes: $requestedTypes,