false, 'message' => __('Method not allowed', 'urbackup')]); exit; } $server_id = (int) ($_POST['id'] ?? 0); if ($server_id <= 0) { echo json_encode(['success' => false, 'message' => __('Invalid server ID', 'urbackup')]); exit; } $server = new Server(); try { // Entity-aware authorization: checks UPDATE right AND access to the server's entity // (returning the server on success, throwing otherwise). $server->check($server_id, UPDATE); } catch (Throwable $e) { http_response_code(403); echo json_encode(['success' => false, 'message' => $e->getMessage()]); exit; } try { $client = new UrbackupApiClient($server); $result = $client->testConnection(); $server->update([ 'id' => $server_id, 'last_api_status' => $result['success'] ? 1 : 0, 'last_api_message' => $result['message'], 'last_api_check' => date('Y-m-d H:i:s'), ]); echo json_encode($result); } catch (Throwable $e) { echo json_encode(['success' => false, 'message' => $e->getMessage()]); }