* @return array Array of pages */ public static function get_available_pages() { $pages = [ [ self::CAP_REDIRECT_MANAGE, 'redirect' ], [ self::CAP_GROUP_MANAGE, 'groups' ], [ self::CAP_404_MANAGE, '404s' ], [ self::CAP_LOG_MANAGE, 'log' ], [ self::CAP_IO_MANAGE, 'import' ], [ self::CAP_IO_MANAGE, 'export' ], [ self::CAP_OPTION_MANAGE, 'options' ], [ self::CAP_SUPPORT_MANAGE, 'support' ], [ self::CAP_SITE_MANAGE, 'site' ], [ self::CAP_RSS, 'rss' ], ]; $available = []; foreach ( $pages as $page ) { list( $capability, $page_name ) = $page; if ( self::has_access( $capability ) ) { $available[] = $page_name; } } /** @var list $filtered */ $filtered = apply_filters( self::FILTER_PAGES, $available ); // @phpstan-ignore arrayValues.list return array_values( $filtered ); } /** * Return all the capabilities the current user has * * @phpstan-return list * @return array Array of capabilities */ public static function get_all_capabilities() { $caps = self::get_every_capability(); $caps = array_filter( $caps, function ( $cap ) { return self::has_access( $cap ); } ); /** * @var list $filtered */ $filtered = apply_filters( self::FILTER_ALL, $caps ); // @phpstan-ignore arrayValues.list return array_values( $filtered ); } /** * Unfiltered list of all the supported capabilities, without influence from the current user * * @phpstan-return list * @return array Array of capabilities */ public static function get_every_capability() { return [ self::CAP_REDIRECT_MANAGE, self::CAP_REDIRECT_ADD, self::CAP_REDIRECT_DELETE, self::CAP_GROUP_MANAGE, self::CAP_GROUP_ADD, self::CAP_GROUP_DELETE, self::CAP_404_MANAGE, self::CAP_404_DELETE, self::CAP_LOG_MANAGE, self::CAP_LOG_DELETE, self::CAP_IO_MANAGE, self::CAP_OPTION_MANAGE, self::CAP_SUPPORT_MANAGE, self::CAP_SITE_MANAGE, ]; } }