Add new purge contact content option to admin contact blocklist
This commit is contained in:
parent
fc2175260f
commit
aea07a7c15
3 changed files with 26 additions and 6 deletions
|
@ -23,10 +23,12 @@ namespace Friendica\Module\Admin\Blocklist;
|
|||
|
||||
use Friendica\Content\Pager;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Worker;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\DI;
|
||||
use Friendica\Module\BaseAdmin;
|
||||
use Friendica\Model;
|
||||
use Friendica\Module\BaseAdmin;
|
||||
use Friendica\Util\Network;
|
||||
|
||||
class Contact extends BaseAdmin
|
||||
{
|
||||
|
@ -38,16 +40,30 @@ class Contact extends BaseAdmin
|
|||
|
||||
$contact_url = $_POST['contact_url'] ?? '';
|
||||
$block_reason = $_POST['contact_block_reason'] ?? '';
|
||||
$block_purge = $_POST['contact_block_purge'] ?? false;
|
||||
$contacts = $_POST['contacts'] ?? [];
|
||||
|
||||
if (!empty($_POST['page_contactblock_block'])) {
|
||||
$contact_id = Model\Contact::getIdForURL($contact_url);
|
||||
if ($contact_id) {
|
||||
Model\Contact::block($contact_id, $block_reason);
|
||||
info(DI::l10n()->t('The contact has been blocked from the node'));
|
||||
} else {
|
||||
$contact = Model\Contact::getByURL($contact_url, null, ['id', 'nurl']);
|
||||
if (empty($contact)) {
|
||||
notice(DI::l10n()->t('Could not find any contact entry for this URL (%s)', $contact_url));
|
||||
DI::baseUrl()->redirect('admin/blocklist/contact');
|
||||
}
|
||||
|
||||
if (Network::isLocalLink($contact['nurl'])) {
|
||||
notice(DI::l10n()->t('You can\'t block a local contact, please block the user instead'));
|
||||
DI::baseUrl()->redirect('admin/blocklist/contact');
|
||||
}
|
||||
|
||||
Model\Contact::block($contact['id'], $block_reason);
|
||||
|
||||
if ($block_purge) {
|
||||
foreach (Model\Contact::selectToArray(['id'], ['nurl' => $contact['nurl']]) as $contact) {
|
||||
Worker::add(PRIORITY_LOW, 'Contact\RemoveContent', $contact['id']);
|
||||
}
|
||||
}
|
||||
|
||||
info(DI::l10n()->t('The contact has been blocked from the node'));
|
||||
}
|
||||
|
||||
if (!empty($_POST['page_contactblock_unblock'])) {
|
||||
|
@ -98,6 +114,7 @@ class Contact extends BaseAdmin
|
|||
'$total_contacts' => DI::l10n()->tt('%s total blocked contact', '%s total blocked contacts', $total),
|
||||
'$paginate' => $pager->renderFull($total),
|
||||
'$contacturl' => ['contact_url', DI::l10n()->t('Profile URL'), '', DI::l10n()->t('URL of the remote contact to block.')],
|
||||
'$contact_block_purge' => ['contact_block_purge', DI::l10n()->t('Also purge contact'), false, DI::l10n()->t('Removes all content related to this contact from the node. Keeps the contact record. This action canoot be undone.')],
|
||||
'$contact_block_reason' => ['contact_block_reason', DI::l10n()->t('Block Reason')],
|
||||
]);
|
||||
return $o;
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
<tbody>
|
||||
<tr>
|
||||
<td>{{include file="field_input.tpl" field=$contacturl}}</td>
|
||||
<td>{{include file="field_checkbox.tpl" field=$contact_block_purge}}</td>
|
||||
<td>{{include file="field_textarea.tpl" field=$contact_block_reason}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -63,3 +64,4 @@
|
|||
<div class="submit"><input type="submit" name="page_contactblock_block" value="{{$submit}}" /></div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
|
||||
|
||||
{{include file="field_input.tpl" field=$contacturl}}
|
||||
{{include file="field_checkbox.tpl" field=$contact_block_purge}}
|
||||
{{include file="field_textarea.tpl" field=$contact_block_reason}}
|
||||
|
||||
<div class="admin-settings-submit-wrapper form-group pull-right">
|
||||
|
|
Loading…
Reference in a new issue