__( 'disabled', 'wp-security-audit-log' ), 'user' => __( 'user accounts only', 'wp-security-audit-log' ), 'blog' => __( 'users can register new sites', 'wp-security-audit-log' ), 'all' => __( 'sites & users can be registered', 'wp-security-audit-log' ), ); Alert_Manager::trigger_event( 7012, array( 'previous_setting' => ( isset( $possible_values[ $old_value ] ) ) ? $possible_values[ $old_value ] : $old_value, 'new_setting' => ( isset( $possible_values[ $value ] ) ) ? $possible_values[ $value ] : $value, ) ); break; case 'add_new_users': Alert_Manager::trigger_event( 7007, array( 'EventType' => ( ! $value ) ? 'disabled' : 'enabled', ) ); break; case 'upload_space_check_disabled': Alert_Manager::trigger_event( 7008, array( 'EventType' => ( $value ) ? 'disabled' : 'enabled', ) ); break; case 'blog_upload_space': Alert_Manager::trigger_event( 7009, array( 'old_value' => sanitize_text_field( $old_value ), 'new_value' => sanitize_text_field( $value ), ) ); break; case 'upload_filetypes': Alert_Manager::trigger_event( 7010, array( 'old_value' => sanitize_text_field( $old_value ), 'new_value' => sanitize_text_field( $value ), ) ); break; case 'fileupload_maxk': Alert_Manager::trigger_event( 7011, array( 'old_value' => sanitize_text_field( $old_value ), 'new_value' => sanitize_text_field( $value ), ) ); break; } } /** * Triggered when a user accesses the admin area. * * @since 4.5.0 */ public static function event_admin_init() { self::$old_allowedthemes = array_keys( (array) get_site_option( 'allowedthemes' ) ); } /** * Activated/Deactivated theme on network. * * @since 4.5.0 */ public static function event_admin_shutdown() { if ( is_null( self::$old_allowedthemes ) ) { return; } $new_allowedthemes = array_keys( (array) get_site_option( 'allowedthemes' ) ); // Check for enabled themes. foreach ( $new_allowedthemes as $theme ) { if ( ! in_array( $theme, (array) self::$old_allowedthemes, true ) ) { $theme = wp_get_theme( $theme ); Alert_Manager::trigger_event( 5008, array( 'Theme' => (object) array( 'Name' => $theme->Name, // phpcs:ignore 'ThemeURI' => $theme->ThemeURI, // phpcs:ignore 'Description' => $theme->Description, // phpcs:ignore 'Author' => $theme->Author, // phpcs:ignore 'Version' => $theme->Version, // phpcs:ignore 'get_template_directory' => $theme->get_template_directory(), ), ) ); } } // Check for disabled themes. foreach ( (array) self::$old_allowedthemes as $theme ) { if ( ! in_array( $theme, $new_allowedthemes, true ) ) { $theme = wp_get_theme( $theme ); Alert_Manager::trigger_event( 5009, array( 'Theme' => (object) array( 'Name' => $theme->Name, // phpcs:ignore 'ThemeURI' => $theme->ThemeURI, // phpcs:ignore 'Description' => $theme->Description, // phpcs:ignore 'Author' => $theme->Author, // phpcs:ignore 'Version' => $theme->Version, // phpcs:ignore 'get_template_directory' => $theme->get_template_directory(), ), ) ); } } } /** * New site added on the network. * * @param WP_Site $new_blog - New site object. * * @since 4.5.0 */ public static function event_new_blog( $new_blog ) { $blog_id = $new_blog->blog_id; /* * Site metadata nor options are not setup at this point so get_blog_option and get_home_url are not * returning anything for the new blog. * * The following code to work out the correct URL for the new site was taken from ms-site.php (WP 5.7). * @see https://github.com/WordPress/WordPress/blob/5.7/wp-includes/ms-site.php#L673 */ $network = get_network( $new_blog->network_id ); if ( ! $network ) { $network = get_network(); } $home_scheme = 'http'; if ( ! is_subdomain_install() ) { if ( 'https' === parse_url( get_home_url( $network->site_id ), PHP_URL_SCHEME ) ) { $home_scheme = 'https'; } } if ( isset( $_POST['blog'] ) && isset( $_POST['blog']['title'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing $blog_title = strip_tags( \sanitize_text_field( \wp_unslash( $_POST['blog']['title'] ) ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing } elseif ( isset( $_POST['target_title'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing $blog_title = strip_tags( \sanitize_text_field( \wp_unslash( $_POST['target_title'] ) ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing } else { $blog_title = WP_Helper::get_blog_info( $new_blog->blog_id )['name']; } $blog_url = untrailingslashit( $home_scheme . '://' . $new_blog->domain . $new_blog->path ); Alert_Manager::trigger_event( 7000, array( 'BlogID' => $blog_id, 'SiteName' => $blog_title, 'BlogURL' => $blog_url, ) ); } /** * Existing site archived. * * @param int $blog_id - Blog ID. * * @since 4.5.0 */ public static function event_archive_blog( $blog_id ) { Alert_Manager::trigger_event( 7001, array( 'BlogID' => $blog_id, 'SiteName' => get_blog_option( $blog_id, 'blogname' ), 'BlogURL' => get_home_url( $blog_id ), ) ); } /** * Archived site has been unarchived. * * @param int $blog_id - Blog ID. * * @since 4.5.0 */ public static function event_unarchive_blog( $blog_id ) { Alert_Manager::trigger_event( 7002, array( 'BlogID' => $blog_id, 'SiteName' => get_blog_option( $blog_id, 'blogname' ), 'BlogURL' => get_home_url( $blog_id ), ) ); } /** * Deactivated site has been activated. * * @param int $blog_id - Blog ID. * * @since 4.5.0 */ public static function event_activate_blog( $blog_id ) { Alert_Manager::trigger_event( 7003, array( 'BlogID' => $blog_id, 'SiteName' => get_blog_option( $blog_id, 'blogname' ), 'BlogURL' => get_home_url( $blog_id ), ) ); } /** * Site has been deactivated. * * @param int $blog_id - Blog ID. * * @since 4.5.0 */ public static function event_deactivate_blog( $blog_id ) { Alert_Manager::trigger_event( 7004, array( 'BlogID' => $blog_id, 'SiteName' => get_blog_option( $blog_id, 'blogname' ), 'BlogURL' => get_home_url( $blog_id ), ) ); } /** * Existing site deleted from network. * * @param WP_Site $deleted_blog - Deleted blog object. * * @since 4.5.0 */ public static function event_delete_blog( $deleted_blog ) { $blog_id = $deleted_blog->blog_id; Alert_Manager::trigger_event( 7005, array( 'BlogID' => $blog_id, 'SiteName' => get_blog_option( $blog_id, 'blogname' ), 'BlogURL' => get_home_url( $blog_id ), ) ); } /** * Existing user added to a site. * * @param int $user_id - User ID. * @param string $role - User role. * @param int $blog_id - Blog ID. * * @since 4.5.0 */ public static function event_user_added_to_blog( $user_id, $role, $blog_id ) { $user = get_userdata( $user_id ); Alert_Manager::trigger_event_if( 4010, array( 'TargetUserID' => $user_id, 'TargetUsername' => $user ? $user->user_login : false, 'TargetUserRole' => $role, 'BlogID' => $blog_id, 'SiteName' => get_blog_option( $blog_id, 'blogname' ), 'FirstName' => $user ? $user->user_firstname : false, 'LastName' => $user ? $user->user_lastname : false, 'EditUserLink' => add_query_arg( 'user_id', $user_id, \network_admin_url( 'user-edit.php' ) ), ), array( __CLASS__, 'must_not_contain_create_user' ) ); } /** * User removed from site. * * @param int $user_id - User ID. * @param int $blog_id - Blog ID. * * @since 4.5.0 */ public static function event_user_removed_from_blog( $user_id, $blog_id ) { $user = get_userdata( $user_id ); Alert_Manager::trigger_event_if( 4011, array( 'TargetUserID' => $user_id, 'TargetUsername' => $user->user_login, 'TargetUserRole' => is_array( $user->roles ) ? implode( ', ', $user->roles ) : $user->roles, 'BlogID' => $blog_id, 'SiteName' => get_blog_option( $blog_id, 'blogname' ), 'FirstName' => $user ? $user->user_firstname : false, 'LastName' => $user ? $user->user_lastname : false, 'EditUserLink' => add_query_arg( 'user_id', $user_id, \network_admin_url( 'user-edit.php' ) ), ), array( __CLASS__, 'must_not_contain_create_user' ) ); } /** * New network user created. * * @return bool * * @since 4.5.0 */ public static function must_not_contain_create_user() { return ! Alert_Manager::will_trigger( 4012 ); } } }