remove blocklist feature in favor of the comment blocklist

This commit is contained in:
Matthias Pfefferle 2020-09-21 13:20:39 +02:00
parent fb22aeae71
commit a875b90054
4 changed files with 2 additions and 85 deletions

View file

@ -107,14 +107,6 @@ class Admin {
'default' => array( 'post', 'pages' ), 'default' => array( 'post', 'pages' ),
) )
); );
\register_setting(
'activitypub', 'activitypub_blacklist', array(
'type' => 'string',
'description' => \esc_html__( 'Block fediverse instances', 'activitypub' ),
'show_in_rest' => true,
'default' => 'gab.com',
)
);
} }
public static function add_settings_help_tab() { public static function add_settings_help_tab() {

View file

@ -287,48 +287,3 @@ function url_to_authorid( $url ) {
return 0; return 0;
} }
/**
* Get the blacklist from the WordPress options table
*
* @return array the list of blacklisted hosts
*
* @uses apply_filters() Calls 'activitypub_blacklist' filter
*/
function get_blacklist() {
$blacklist = \get_option( 'activitypub_blacklist', 'gab.com' );
$blacklist_hosts = \explode( \PHP_EOL, $blacklist );
// if no values have been set, revert to the defaults
if ( ! $blacklist || ! $blacklist_hosts || ! \is_array( $blacklist_hosts ) ) {
$blacklist_hosts = array();
}
// clean out any blank values
foreach ( $blacklist_hosts as $key => $value ) {
if ( empty( $value ) ) {
unset( $blacklist_hosts[ $key ] );
} else {
$blacklist_hosts[ $key ] = \trim( $blacklist_hosts[ $key ] );
}
}
return \apply_filters( 'activitypub_blacklist', $blacklist_hosts );
}
/**
* Check if an URL is blacklisted
*
* @param string $url an URL to check
*
* @return boolean
*/
function is_blacklisted( $url ) {
foreach ( \ActivityPub\get_blacklist() as $blacklisted_host ) {
if ( \stripos( $url, $blacklisted_host ) !== false ) {
return true;
}
}
return false;
}

View file

@ -135,23 +135,11 @@ class Inbox {
$params['id'] = array( $params['id'] = array(
'required' => true, 'required' => true,
'validate_callback' => function( $param, $request, $key ) {
if ( ! \is_string( $param ) ) {
$param = $param['id'];
}
return ! \Activitypub\is_blacklisted( $param );
},
'sanitize_callback' => 'esc_url_raw', 'sanitize_callback' => 'esc_url_raw',
); );
$params['actor'] = array( $params['actor'] = array(
'required' => true, 'required' => true,
'validate_callback' => function( $param, $request, $key ) {
if ( ! \is_string( $param ) ) {
$param = $param['id'];
}
return ! \Activitypub\is_blacklisted( $param );
},
'sanitize_callback' => function( $param, $request, $key ) { 'sanitize_callback' => function( $param, $request, $key ) {
if ( ! \is_string( $param ) ) { if ( ! \is_string( $param ) ) {
$param = $param['id']; $param = $param['id'];
@ -188,24 +176,12 @@ class Inbox {
$params['id'] = array( $params['id'] = array(
'required' => true, 'required' => true,
'type' => 'string', 'type' => 'string',
'validate_callback' => function( $param, $request, $key ) {
if ( ! \is_string( $param ) ) {
$param = $param['id'];
}
return ! \Activitypub\is_blacklisted( $param );
},
'sanitize_callback' => 'esc_url_raw', 'sanitize_callback' => 'esc_url_raw',
); );
$params['actor'] = array( $params['actor'] = array(
'required' => true, 'required' => true,
//'type' => array( 'object', 'string' ), //'type' => array( 'object', 'string' ),
'validate_callback' => function( $param, $request, $key ) {
if ( ! \is_string( $param ) ) {
$param = $param['id'];
}
return ! \Activitypub\is_blacklisted( $param );
},
'sanitize_callback' => function( $param, $request, $key ) { 'sanitize_callback' => function( $param, $request, $key ) {
if ( ! \is_string( $param ) ) { if ( ! \is_string( $param ) ) {
$param = $param['id']; $param = $param['id'];

View file

@ -108,20 +108,14 @@
<p><?php \esc_html_e( 'Server related settings.', 'activitypub' ); ?></p> <p><?php \esc_html_e( 'Server related settings.', 'activitypub' ); ?></p>
<?php
// load the existing blacklist from the WordPress options table
$activitypub_blacklist = \trim( \implode( \PHP_EOL, \ActivityPub\get_blacklist() ), \PHP_EOL );
?>
<table class="form-table"> <table class="form-table">
<tbody> <tbody>
<tr> <tr>
<th scope="row"> <th scope="row">
<?php \esc_html_e( 'Blacklist', 'activitypub' ); ?> <?php \esc_html_e( 'Blocklist', 'activitypub' ); ?>
</th> </th>
<td> <td>
<textarea name="activitypub_blacklist" id="activitypub_blacklist" rows="10" cols="50" class="large-text"><?php echo $activitypub_blacklist; ?></textarea> <p class="description"><?php \printf( \__( 'To block servers, add the host of the server to the "<a href="%s">Disallowed Comment Keys</a>" list.', 'activitypub' ), admin_url( 'options-discussion.php#disallowed_keys' ) ); ?></p>
<p class="description"><?php \_e( 'A list of hosts, you want to block, one host per line. Please use only the host/domain of the server you want to block, without <code>http://</code> and without <code>www.</code>. For example <code>example.com</code>.', 'activitypub' ); ?></p>
</td> </td>
</tr> </tr>
</tbody> </tbody>