3 * @copyright Copyright (C) 2020, Friendica
5 * @license GNU AGPL version 3 or any later version
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as
9 * published by the Free Software Foundation, either version 3 of the
10 * License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22 namespace Friendica\Module\Admin\Users;
24 use Friendica\Content\Pager;
25 use Friendica\Core\Renderer;
26 use Friendica\Database\DBA;
28 use Friendica\Model\Register;
29 use Friendica\Model\User;
30 use Friendica\Module\Admin\BaseUsers;
31 use Friendica\Module\BaseAdmin;
32 use Friendica\Util\Temporal;
34 class Deleted extends BaseUsers
36 public static function post(array $parameters = [])
38 self::checkAdminAccess();
40 self::checkFormSecurityTokenRedirectOnError('/admin/users/deleted', 'admin_users_deleted');
42 // @TODO: Implement user deletion cancellation
44 DI::baseUrl()->redirect('admin/users/deleted');
47 public static function content(array $parameters = [])
49 parent::content($parameters);
51 $pager = new Pager(DI::l10n(), DI::args()->getQueryString(), 100);
63 $order_direction = '+';
64 if (!empty($_GET['o'])) {
65 $new_order = $_GET['o'];
66 if ($new_order[0] === '-') {
67 $order_direction = '-';
68 $new_order = substr($new_order, 1);
71 if (in_array($new_order, $valid_orders)) {
76 $users = User::getList($pager->getStart(), $pager->getItemsPerPage(), 'removed', $order, ($order_direction == '-'));
78 $users = array_map(self::setupUserCallback(), $users);
80 $count = DBA::count('user', ['account_removed' => true]);
82 $t = Renderer::getMarkupTemplate('admin/users/deleted.tpl');
83 return self::getTabsHTML('deleted') . Renderer::replaceMacros($t, [
85 '$title' => DI::l10n()->t('Administration'),
86 '$page' => DI::l10n()->t('Users awaiting permanent deletion'),
88 '$th_deleted' => [DI::l10n()->t('Name'), DI::l10n()->t('Email'), DI::l10n()->t('Register date'), DI::l10n()->t('Last login'), DI::l10n()->t('Last public item'), DI::l10n()->t('Permanent deletion')],
90 '$form_security_token' => self::getFormSecurityToken('admin_users_deleted'),
93 '$baseurl' => DI::baseUrl()->get(true),
94 '$query_string' => DI::args()->getQueryString(),
98 '$pager' => $pager->renderFull($count),