mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-19 01:35:12 +00:00
more work on vendor blocking
This commit is contained in:
parent
888e9c9519
commit
bf7a54dfaa
1 changed files with 56 additions and 1 deletions
|
@ -222,10 +222,65 @@ class Superblock extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
$type = BLOCKTYPE_VENDOR;
|
||||
$blockproj = trim($_REQUEST['blockproj']);
|
||||
if ($blockproj) {
|
||||
$handled = true;
|
||||
$servers = Activity::get_actor_hublocs($blockproj);
|
||||
if ($servers) {
|
||||
foreach ($servers as $server) {
|
||||
$m = parse_url($server['hubloc_url']);
|
||||
if ($m['scheme'] && $m['host']) {
|
||||
if (strcasecmp($m['host'], App::get_hostname()) === 0) {
|
||||
notice(t('Blocking this software is not permitted.'));
|
||||
if ($inline) {
|
||||
return;
|
||||
}
|
||||
killme();
|
||||
}
|
||||
$blockproj = $m['host'];
|
||||
$bl = [
|
||||
'block_channel_id' => local_channel(),
|
||||
'block_entity' => $blockproj,
|
||||
'block_type' => $type,
|
||||
'block_comment' => t('Added by Superblock')
|
||||
];
|
||||
|
||||
LibBlock::store($bl);
|
||||
|
||||
$sync = [];
|
||||
|
||||
$sync['block'] = [LibBlock::fetch_by_entity(local_channel(), $blockproj)];
|
||||
Libsync::build_sync_packet(0, $sync);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$unblockproj = trim($_REQUEST['unblockproj']);
|
||||
if ($unblockproj) {
|
||||
$handled = true;
|
||||
if (check_form_security_token('superblock', 'sectok')) {
|
||||
$r = LibBlock::fetch_by_entity(local_channel(), $unblockproj);
|
||||
if ($r) {
|
||||
LibBlock::remove(local_channel(), $unblockproj);
|
||||
$sync = [];
|
||||
$sync['block'] = [[
|
||||
'block_channel_id' => local_channel(),
|
||||
'block_entity' => $unblockproj,
|
||||
'block_type' => $type,
|
||||
'deleted' => true,
|
||||
]];
|
||||
|
||||
Libsync::build_sync_packet(0, $sync);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($handled) {
|
||||
info(t('superblock settings updated') . EOL);
|
||||
|
||||
if ($unblocked || $unblockedsite || $inline) {
|
||||
if ($unblocked || $unblockedsite || $unblockproj || $inline) {
|
||||
return;
|
||||
}
|
||||
killme();
|
||||
|
|
Loading…
Reference in a new issue