mirror of
https://github.com/friendica/friendica
synced 2024-12-23 19:20:17 +00:00
Move admin/blocklist/contact to src/Module
- Add Module\Admin\ContactBlock\Contact class - Add route for admin/blocklist/contact - Add contact blocklist admin aside menu entry - Move templates/admin/contactblock.tpl to templates/admin/blocklist/contact.tpl in base and frio - Remove admin_page_contactblock and admin_page_contactblock_post from mod/admin.php
This commit is contained in:
parent
446cb905e4
commit
cf885841c8
6 changed files with 97 additions and 92 deletions
|
@ -114,9 +114,6 @@ function admin_post(App $a)
|
||||||
case 'logs':
|
case 'logs':
|
||||||
admin_page_logs_post($a);
|
admin_page_logs_post($a);
|
||||||
break;
|
break;
|
||||||
case 'contactblock':
|
|
||||||
admin_page_contactblock_post($a);
|
|
||||||
break;
|
|
||||||
case 'blocklist':
|
case 'blocklist':
|
||||||
admin_page_blocklist_post($a);
|
admin_page_blocklist_post($a);
|
||||||
break;
|
break;
|
||||||
|
@ -240,9 +237,6 @@ function admin_content(App $a)
|
||||||
case 'workerqueue':
|
case 'workerqueue':
|
||||||
$o = admin_page_workerqueue($a, false);
|
$o = admin_page_workerqueue($a, false);
|
||||||
break;
|
break;
|
||||||
case 'contactblock':
|
|
||||||
$o = admin_page_contactblock($a);
|
|
||||||
break;
|
|
||||||
case 'blocklist':
|
case 'blocklist':
|
||||||
$o = admin_page_blocklist($a);
|
$o = admin_page_blocklist($a);
|
||||||
break;
|
break;
|
||||||
|
@ -354,88 +348,6 @@ function admin_page_blocklist_post(App $a)
|
||||||
return; // NOTREACHED
|
return; // NOTREACHED
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Process data send by the contact block admin page
|
|
||||||
*
|
|
||||||
* @param App $a
|
|
||||||
* @throws ImagickException
|
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
|
||||||
*/
|
|
||||||
function admin_page_contactblock_post(App $a)
|
|
||||||
{
|
|
||||||
$contact_url = defaults($_POST, 'contact_url', '');
|
|
||||||
$contacts = defaults($_POST, 'contacts', []);
|
|
||||||
|
|
||||||
BaseModule::checkFormSecurityTokenRedirectOnError('/admin/contactblock', 'admin_contactblock');
|
|
||||||
|
|
||||||
if (!empty($_POST['page_contactblock_block'])) {
|
|
||||||
$contact_id = Contact::getIdForURL($contact_url);
|
|
||||||
if ($contact_id) {
|
|
||||||
Contact::block($contact_id);
|
|
||||||
notice(L10n::t('The contact has been blocked from the node'));
|
|
||||||
} else {
|
|
||||||
notice(L10n::t("Could not find any contact entry for this URL \x28%s\x29", $contact_url));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!empty($_POST['page_contactblock_unblock'])) {
|
|
||||||
foreach ($contacts as $uid) {
|
|
||||||
Contact::unblock($uid);
|
|
||||||
}
|
|
||||||
notice(L10n::tt("%s contact unblocked", "%s contacts unblocked", count($contacts)));
|
|
||||||
}
|
|
||||||
$a->internalRedirect('admin/contactblock');
|
|
||||||
return; // NOTREACHED
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Admin panel for server-wide contact block
|
|
||||||
*
|
|
||||||
* @param App $a
|
|
||||||
* @return string
|
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
|
||||||
*/
|
|
||||||
function admin_page_contactblock(App $a)
|
|
||||||
{
|
|
||||||
$condition = ['uid' => 0, 'blocked' => true];
|
|
||||||
|
|
||||||
$total = DBA::count('contact', $condition);
|
|
||||||
|
|
||||||
$pager = new Pager($a->query_string, 30);
|
|
||||||
|
|
||||||
$statement = DBA::select('contact', [], $condition, ['limit' => [$pager->getStart(), $pager->getItemsPerPage()]]);
|
|
||||||
|
|
||||||
$contacts = DBA::toArray($statement);
|
|
||||||
|
|
||||||
$t = Renderer::getMarkupTemplate('admin/contactblock.tpl');
|
|
||||||
$o = Renderer::replaceMacros($t, [
|
|
||||||
// strings //
|
|
||||||
'$title' => L10n::t('Administration'),
|
|
||||||
'$page' => L10n::t('Remote Contact Blocklist'),
|
|
||||||
'$description' => L10n::t('This page allows you to prevent any message from a remote contact to reach your node.'),
|
|
||||||
'$submit' => L10n::t('Block Remote Contact'),
|
|
||||||
'$select_all' => L10n::t('select all'),
|
|
||||||
'$select_none' => L10n::t('select none'),
|
|
||||||
'$block' => L10n::t('Block'),
|
|
||||||
'$unblock' => L10n::t('Unblock'),
|
|
||||||
'$no_data' => L10n::t('No remote contact is blocked from this node.'),
|
|
||||||
|
|
||||||
'$h_contacts' => L10n::t('Blocked Remote Contacts'),
|
|
||||||
'$h_newblock' => L10n::t('Block New Remote Contact'),
|
|
||||||
'$th_contacts' => [L10n::t('Photo'), L10n::t('Name'), L10n::t('Address'), L10n::t('Profile URL')],
|
|
||||||
|
|
||||||
'$form_security_token' => BaseModule::getFormSecurityToken("admin_contactblock"),
|
|
||||||
|
|
||||||
// values //
|
|
||||||
'$baseurl' => System::baseUrl(true),
|
|
||||||
|
|
||||||
'$contacts' => $contacts,
|
|
||||||
'$total_contacts' => L10n::tt('%s total blocked contact', '%s total blocked contacts', $total),
|
|
||||||
'$paginate' => $pager->renderFull($total),
|
|
||||||
'$contacturl' => ['contact_url', L10n::t("Profile URL"), '', L10n::t("URL of the remote contact to block.")],
|
|
||||||
]);
|
|
||||||
return $o;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Subpage where the admin can delete an item from their node given the GUID
|
* @brief Subpage where the admin can delete an item from their node given the GUID
|
||||||
*
|
*
|
||||||
|
|
|
@ -124,6 +124,7 @@ class Router
|
||||||
$collector->addRoute(['GET', 'POST'], '/addons' , Module\Admin\Addons\Index::class);
|
$collector->addRoute(['GET', 'POST'], '/addons' , Module\Admin\Addons\Index::class);
|
||||||
$collector->addRoute(['GET', 'POST'], '/addons/{addon}' , Module\Admin\Addons\Details::class);
|
$collector->addRoute(['GET', 'POST'], '/addons/{addon}' , Module\Admin\Addons\Details::class);
|
||||||
|
|
||||||
|
$collector->addRoute(['GET', 'POST'], '/blocklist/contact' , Module\Admin\Blocklist\Contact::class);
|
||||||
$collector->addRoute(['GET', 'POST'], '/features' , Module\Admin\Features::class);
|
$collector->addRoute(['GET', 'POST'], '/features' , Module\Admin\Features::class);
|
||||||
$collector->addRoute(['GET'] , '/federation' , Module\Admin\Federation::class);
|
$collector->addRoute(['GET'] , '/federation' , Module\Admin\Federation::class);
|
||||||
|
|
||||||
|
|
89
src/Module/Admin/Blocklist/Contact.php
Normal file
89
src/Module/Admin/Blocklist/Contact.php
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Friendica\Module\Admin\Blocklist;
|
||||||
|
|
||||||
|
use Friendica\Content\Pager;
|
||||||
|
use Friendica\Core\L10n;
|
||||||
|
use Friendica\Core\Renderer;
|
||||||
|
use Friendica\Core\System;
|
||||||
|
use Friendica\Database\DBA;
|
||||||
|
use Friendica\Module\BaseAdminModule;
|
||||||
|
use Friendica\Model;
|
||||||
|
|
||||||
|
class Contact extends BaseAdminModule
|
||||||
|
{
|
||||||
|
public static function post()
|
||||||
|
{
|
||||||
|
parent::post();
|
||||||
|
|
||||||
|
$contact_url = defaults($_POST, 'contact_url', '');
|
||||||
|
$contacts = defaults($_POST, 'contacts', []);
|
||||||
|
|
||||||
|
parent::checkFormSecurityTokenRedirectOnError('/admin/blocklist/contact', 'admin_contactblock');
|
||||||
|
|
||||||
|
if (!empty($_POST['page_contactblock_block'])) {
|
||||||
|
$contact_id = Model\Contact::getIdForURL($contact_url);
|
||||||
|
if ($contact_id) {
|
||||||
|
Model\Contact::block($contact_id);
|
||||||
|
notice(L10n::t('The contact has been blocked from the node'));
|
||||||
|
} else {
|
||||||
|
notice(L10n::t("Could not find any contact entry for this URL \x28%s\x29", $contact_url));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($_POST['page_contactblock_unblock'])) {
|
||||||
|
foreach ($contacts as $uid) {
|
||||||
|
Model\Contact::unblock($uid);
|
||||||
|
}
|
||||||
|
notice(L10n::tt("%s contact unblocked", "%s contacts unblocked", count($contacts)));
|
||||||
|
}
|
||||||
|
|
||||||
|
self::getApp()->internalRedirect('admin/blocklist/contact');
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function content()
|
||||||
|
{
|
||||||
|
parent::content();
|
||||||
|
|
||||||
|
$a = self::getApp();
|
||||||
|
|
||||||
|
$condition = ['uid' => 0, 'blocked' => true];
|
||||||
|
|
||||||
|
$total = DBA::count('contact', $condition);
|
||||||
|
|
||||||
|
$pager = new Pager($a->query_string, 30);
|
||||||
|
|
||||||
|
$statement = DBA::select('contact', [], $condition, ['limit' => [$pager->getStart(), $pager->getItemsPerPage()]]);
|
||||||
|
|
||||||
|
$contacts = DBA::toArray($statement);
|
||||||
|
|
||||||
|
$t = Renderer::getMarkupTemplate('admin/blocklist/contact.tpl');
|
||||||
|
$o = Renderer::replaceMacros($t, [
|
||||||
|
// strings //
|
||||||
|
'$title' => L10n::t('Administration'),
|
||||||
|
'$page' => L10n::t('Remote Contact Blocklist'),
|
||||||
|
'$description' => L10n::t('This page allows you to prevent any message from a remote contact to reach your node.'),
|
||||||
|
'$submit' => L10n::t('Block Remote Contact'),
|
||||||
|
'$select_all' => L10n::t('select all'),
|
||||||
|
'$select_none' => L10n::t('select none'),
|
||||||
|
'$block' => L10n::t('Block'),
|
||||||
|
'$unblock' => L10n::t('Unblock'),
|
||||||
|
'$no_data' => L10n::t('No remote contact is blocked from this node.'),
|
||||||
|
|
||||||
|
'$h_contacts' => L10n::t('Blocked Remote Contacts'),
|
||||||
|
'$h_newblock' => L10n::t('Block New Remote Contact'),
|
||||||
|
'$th_contacts' => [L10n::t('Photo'), L10n::t('Name'), L10n::t('Address'), L10n::t('Profile URL')],
|
||||||
|
|
||||||
|
'$form_security_token' => parent::getFormSecurityToken("admin_contactblock"),
|
||||||
|
|
||||||
|
// values //
|
||||||
|
'$baseurl' => System::baseUrl(true),
|
||||||
|
|
||||||
|
'$contacts' => $contacts,
|
||||||
|
'$total_contacts' => L10n::tt('%s total blocked contact', '%s total blocked contacts', $total),
|
||||||
|
'$paginate' => $pager->renderFull($total),
|
||||||
|
'$contacturl' => ['contact_url', L10n::t("Profile URL"), '', L10n::t("URL of the remote contact to block.")],
|
||||||
|
]);
|
||||||
|
return $o;
|
||||||
|
}
|
||||||
|
}
|
|
@ -59,6 +59,9 @@ abstract class BaseAdminModule extends BaseModule
|
||||||
'features' => ['admin/features' , L10n::t('Additional features') , 'features'],
|
'features' => ['admin/features' , L10n::t('Additional features') , 'features'],
|
||||||
'tos' => ['admin/tos' , L10n::t('Terms of Service') , 'tos'],
|
'tos' => ['admin/tos' , L10n::t('Terms of Service') , 'tos'],
|
||||||
]],
|
]],
|
||||||
|
'tools' => [L10n::t('Tools'), [
|
||||||
|
'contactblock' => ['admin/blocklist/contact', L10n::t('Contact Blocklist') , 'contactblock'],
|
||||||
|
]],
|
||||||
];
|
];
|
||||||
|
|
||||||
$addons_admin = [];
|
$addons_admin = [];
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<div id="adminpage">
|
<div id="adminpage">
|
||||||
<h1>{{$title}} - {{$page}}</h1>
|
<h1>{{$title}} - {{$page}}</h1>
|
||||||
<p>{{$description nofilter}}</p>
|
<p>{{$description nofilter}}</p>
|
||||||
<form action="{{$baseurl}}/admin/contactblock" method="post">
|
<form action="{{$baseurl}}/admin/blocklist/contact" method="post">
|
||||||
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
|
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
|
||||||
|
|
||||||
<h3>{{$h_contacts}}</h3>
|
<h3>{{$h_contacts}}</h3>
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<h3>{{$h_newblock}}</h3>
|
<h3>{{$h_newblock}}</h3>
|
||||||
<form action="{{$baseurl}}/admin/contactblock" method="post">
|
<form action="{{$baseurl}}/admin/blocklist/contact" method="post">
|
||||||
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
|
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
|
||||||
<table id="contactblock">
|
<table id="contactblock">
|
||||||
<tbody>
|
<tbody>
|
|
@ -18,7 +18,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="admin-settings-contactblock-block-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="admin-settings-contactblock-block">
|
<div id="admin-settings-contactblock-block-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="admin-settings-contactblock-block">
|
||||||
<form action="{{$baseurl}}/admin/contactblock" method="post">
|
<form action="{{$baseurl}}/admin/blocklist/contact" method="post">
|
||||||
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
|
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
|
||||||
|
|
||||||
{{include file="field_input.tpl" field=$contacturl}}
|
{{include file="field_input.tpl" field=$contacturl}}
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="admin-settings-contactblock-blocked-collapse" class="panel-collapse collapse {{if count($contacts) > 0}}in{{/if}}" role="tabpanel" aria-labelledby="admin-settings-contactblock-blocked">
|
<div id="admin-settings-contactblock-blocked-collapse" class="panel-collapse collapse {{if count($contacts) > 0}}in{{/if}}" role="tabpanel" aria-labelledby="admin-settings-contactblock-blocked">
|
||||||
<form action="{{$baseurl}}/admin/contactblock" method="post">
|
<form action="{{$baseurl}}/admin/blocklist/contact" method="post">
|
||||||
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
|
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
|
||||||
|
|
||||||
{{if $contacts}}
|
{{if $contacts}}
|
Loading…
Reference in a new issue