updated plugin ActivityPub
version 5.8.0
This commit is contained in:
122
wp-content/plugins/activitypub/includes/class-sanitize.php
Normal file
122
wp-content/plugins/activitypub/includes/class-sanitize.php
Normal file
@ -0,0 +1,122 @@
|
||||
<?php
|
||||
/**
|
||||
* Sanitization file.
|
||||
*
|
||||
* @package Activitypub
|
||||
*/
|
||||
|
||||
namespace Activitypub;
|
||||
|
||||
use Activitypub\Model\Blog;
|
||||
|
||||
/**
|
||||
* Sanitization class.
|
||||
*/
|
||||
class Sanitize {
|
||||
/**
|
||||
* Sanitize a list of URLs.
|
||||
*
|
||||
* @param string|array $value The value to sanitize.
|
||||
* @return array The sanitized list of URLs.
|
||||
*/
|
||||
public static function url_list( $value ) {
|
||||
if ( ! \is_array( $value ) ) {
|
||||
$value = \explode( PHP_EOL, $value );
|
||||
}
|
||||
|
||||
$value = \array_filter( $value );
|
||||
$value = \array_map( 'trim', $value );
|
||||
$value = \array_map( 'sanitize_url', $value );
|
||||
$value = \array_unique( $value );
|
||||
|
||||
return \array_values( $value );
|
||||
}
|
||||
|
||||
/**
|
||||
* Sanitize a list of hosts.
|
||||
*
|
||||
* @param string $value The value to sanitize.
|
||||
* @return string The sanitized list of hosts.
|
||||
*/
|
||||
public static function host_list( $value ) {
|
||||
$value = \explode( PHP_EOL, $value );
|
||||
$value = \array_map(
|
||||
function ( $host ) {
|
||||
$host = \trim( $host );
|
||||
$host = \strtolower( $host );
|
||||
$host = \set_url_scheme( $host );
|
||||
$host = \sanitize_url( $host, array( 'http', 'https' ) );
|
||||
|
||||
// Remove protocol.
|
||||
if ( \str_contains( $host, 'http' ) ) {
|
||||
$host = \wp_parse_url( $host, PHP_URL_HOST );
|
||||
}
|
||||
|
||||
return \filter_var( $host, FILTER_VALIDATE_DOMAIN );
|
||||
},
|
||||
$value
|
||||
);
|
||||
|
||||
return \implode( PHP_EOL, \array_filter( $value ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Sanitize a blog identifier.
|
||||
*
|
||||
* @param string $value The value to sanitize.
|
||||
* @return string The sanitized blog identifier.
|
||||
*/
|
||||
public static function blog_identifier( $value ) {
|
||||
// Hack to allow dots in the username.
|
||||
$parts = \explode( '.', $value );
|
||||
$sanitized = \array_map( 'sanitize_title', $parts );
|
||||
$sanitized = \implode( '.', $sanitized );
|
||||
|
||||
// Check for login or nicename.
|
||||
$user = new \WP_User_Query(
|
||||
array(
|
||||
'search' => $sanitized,
|
||||
'search_columns' => array( 'user_login', 'user_nicename' ),
|
||||
'number' => 1,
|
||||
'hide_empty' => true,
|
||||
'fields' => 'ID',
|
||||
)
|
||||
);
|
||||
|
||||
if ( $user->get_results() ) {
|
||||
\add_settings_error(
|
||||
'activitypub_blog_identifier',
|
||||
'activitypub_blog_identifier',
|
||||
\esc_html__( 'You cannot use an existing author’s name for the blog profile ID.', 'activitypub' )
|
||||
);
|
||||
|
||||
return Blog::get_default_username();
|
||||
}
|
||||
|
||||
return $sanitized;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the sanitized value of a constant.
|
||||
*
|
||||
* @param mixed $value The constant value.
|
||||
*
|
||||
* @return string The sanitized value.
|
||||
*/
|
||||
public static function constant_value( $value ) {
|
||||
if ( is_bool( $value ) ) {
|
||||
return $value ? 'true' : 'false';
|
||||
}
|
||||
|
||||
if ( is_string( $value ) ) {
|
||||
return esc_attr( $value );
|
||||
}
|
||||
|
||||
if ( is_array( $value ) ) {
|
||||
// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_print_r
|
||||
return print_r( $value, true );
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user