* Admn -> Users + fix fonts in style
This commit is contained in:
parent
2885634cb6
commit
431047be87
7 changed files with 212 additions and 15 deletions
|
@ -128,7 +128,6 @@ class Routing
|
|||
$r->add(['GET', 'POST'], '/admin/users/result/{data}[/{page:[1-9]\d*}]', 'AdminUsersResult:view', 'AdminUsersResult');
|
||||
$r->add(['GET', 'POST'], '/admin/users/{action:\w+}/{ids:\d+(?:-\d+)*}', 'AdminUsersAction:view', 'AdminUsersAction');
|
||||
|
||||
|
||||
if ($user->canViewIP) {
|
||||
$r->add('GET', '/admin/get/host/{ip:[0-9a-fA-F:.]+}', 'AdminHost:view', 'AdminHost');
|
||||
$r->add('GET', '/admin/users/user/{id:[2-9]|[1-9]\d+}[/{page:[1-9]\d*}]', 'AdminUsersStat:view', 'AdminUserStat');
|
||||
|
|
|
@ -79,14 +79,17 @@ abstract class Users extends Admin
|
|||
* Проверяет доступность действий над выбранными пользователями
|
||||
*
|
||||
* @param array $selected
|
||||
* @param string $action // ????
|
||||
* @param string $action
|
||||
*
|
||||
* @return false|array
|
||||
*/
|
||||
protected function checkSelected(array $selected, $action)
|
||||
{
|
||||
$selected = \array_map(function ($value) { // ????
|
||||
return (int) $value;
|
||||
}, $selected);
|
||||
$bad = \array_filter($selected, function ($value) {
|
||||
return $value < 2; // ???? например '03'
|
||||
return $value < 2;
|
||||
});
|
||||
|
||||
if (! empty($bad)) {
|
||||
|
@ -143,6 +146,11 @@ abstract class Users extends Admin
|
|||
$result[] = $user->id;
|
||||
}
|
||||
|
||||
if (empty($result)) {
|
||||
$this->fIswev = ['v', \ForkBB\__('No users selected')];
|
||||
return false;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
|
177
app/Models/Pages/Admin/Users/Action.php
Normal file
177
app/Models/Pages/Admin/Users/Action.php
Normal file
|
@ -0,0 +1,177 @@
|
|||
<?php
|
||||
|
||||
namespace ForkBB\Models\Pages\Admin\Users;
|
||||
|
||||
use ForkBB\Core\Validator;
|
||||
use ForkBB\Models\Pages\Admin\Users;
|
||||
use RuntimeException;
|
||||
|
||||
class Action extends Users
|
||||
{
|
||||
/**
|
||||
* Подготавливает данные для шаблона(ов) действия
|
||||
*
|
||||
* @param array $args
|
||||
* @param string $method
|
||||
*
|
||||
* @throws RuntimeException
|
||||
*
|
||||
* @return Page
|
||||
*/
|
||||
public function view(array $args, $method)
|
||||
{
|
||||
$this->rules = $this->c->UsersRules->init();
|
||||
|
||||
$error = false;
|
||||
switch ($args['action']) {
|
||||
case self::ACTION_BAN:
|
||||
if (! $this->rules->banUsers) {
|
||||
$error = true;
|
||||
}
|
||||
break;
|
||||
case self::ACTION_DEL:
|
||||
if (! $this->rules->deleteUsers) {
|
||||
$error = true;
|
||||
}
|
||||
break;
|
||||
case self::ACTION_CHG:
|
||||
if (! $this->rules->changeGroup) {
|
||||
$error = true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$error = true;
|
||||
}
|
||||
|
||||
if ($error) {
|
||||
return $this->c->Message->message('Bad request');
|
||||
}
|
||||
|
||||
$ids = $this->checkSelected(\explode('-', $args['ids']), $args['action']);
|
||||
if (false === $ids) {
|
||||
$message = $this->c->Message->message('Action not available');
|
||||
$message->fIswev = $this->fIswev; //????
|
||||
return $message;
|
||||
}
|
||||
|
||||
$this->userList = $this->c->users->load($ids);
|
||||
switch ($args['action']) {
|
||||
case self::ACTION_BAN:
|
||||
return $this->ban($args, $method);
|
||||
case self::ACTION_DEL:
|
||||
return $this->delete($args, $method);
|
||||
case self::ACTION_CHG:
|
||||
return $this->change($args, $method);
|
||||
default:
|
||||
throw new RuntimeException("The action {$args['action']} is unavailable");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Удаляет пользователей
|
||||
*
|
||||
* @param array $args
|
||||
* @param string $method
|
||||
*
|
||||
* @return Page
|
||||
*/
|
||||
protected function delete(array $args, $method)
|
||||
{
|
||||
|
||||
|
||||
$this->nameTpl = 'admin/form';
|
||||
$this->classForm = 'delete-users';
|
||||
$this->titleForm = \ForkBB\__('Deleting users');
|
||||
$this->aCrumbs[] = [$this->c->Router->link('AdminUsersAction', $args), \ForkBB\__('Deleting users')];
|
||||
$this->form = $this->formDelete($args);
|
||||
|
||||
return $this;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает список имен пользователей
|
||||
*
|
||||
* @param array $users
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function nameList(array $users)
|
||||
{
|
||||
$result = [];
|
||||
foreach ($users as $user) {
|
||||
$result[] = $user->username;
|
||||
}
|
||||
\sort($result, \SORT_STRING | \SORT_FLAG_CASE);
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Создает массив данных для формы статистики пользователя по ip
|
||||
*
|
||||
* @param array $stat
|
||||
* @param int $number
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function formDelete(array $args)
|
||||
{
|
||||
$yn = [1 => \ForkBB\__('Yes'), 0 => \ForkBB\__('No')];
|
||||
$names = \implode(', ', $this->nameList($this->userList));
|
||||
$form = [
|
||||
'action' => $this->c->Router->link('AdminUsersAction', $args),
|
||||
'hidden' => [
|
||||
'token' => $this->c->Csrf->create('AdminUsersAction', $args),
|
||||
],
|
||||
'sets' => [
|
||||
'info' => [
|
||||
'info' => [
|
||||
'info1' => [
|
||||
'type' => '', //????
|
||||
'value' => \ForkBB\__('Confirm delete info', $names),
|
||||
],
|
||||
],
|
||||
],
|
||||
'options' => [
|
||||
'fields' => [
|
||||
'confirm' => [
|
||||
'type' => 'radio',
|
||||
'value' => 0,
|
||||
'values' => $yn,
|
||||
'caption' => \ForkBB\__('Delete users'),
|
||||
],
|
||||
'delete_posts' => [
|
||||
'type' => 'radio',
|
||||
'value' => 0,
|
||||
'values' => $yn,
|
||||
'caption' => \ForkBB\__('Delete posts'),
|
||||
],
|
||||
],
|
||||
],
|
||||
'info2' => [
|
||||
'info' => [
|
||||
'info2' => [
|
||||
'type' => '', //????
|
||||
'value' => \ForkBB\__('Delete warning'),
|
||||
'html' => true,
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'btns' => [
|
||||
'delete' => [
|
||||
'type' => 'submit',
|
||||
'value' => \ForkBB\__('Delete users'),
|
||||
'accesskey' => 'd',
|
||||
],
|
||||
'cancel' => [
|
||||
'type' => 'btn',
|
||||
'value' => \ForkBB\__('Cancel'),
|
||||
'link' => $this->c->Router->link('AdminUsers'),
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
return $form;
|
||||
}
|
||||
}
|
|
@ -169,6 +169,7 @@ return [
|
|||
'AdminUsers' => \ForkBB\Models\Pages\Admin\Users\View::class,
|
||||
'AdminUsersResult' => \ForkBB\Models\Pages\Admin\Users\Result::class,
|
||||
'AdminUsersStat' => \ForkBB\Models\Pages\Admin\Users\Stat::class,
|
||||
'AdminUsersAction' => \ForkBB\Models\Pages\Admin\Users\Action::class,
|
||||
'AdminHost' => \ForkBB\Models\Pages\Admin\Host::class,
|
||||
|
||||
'ConfigModel' => \ForkBB\Models\Config\Model::class,
|
||||
|
|
|
@ -66,6 +66,9 @@ msgstr "Invalid group ID."
|
|||
msgid "Users move redirect"
|
||||
msgstr "User group changed. Redirecting …"
|
||||
|
||||
msgid "Deleting users"
|
||||
msgstr "Delete users"
|
||||
|
||||
msgid "Delete users"
|
||||
msgstr "Delete users"
|
||||
|
||||
|
@ -73,13 +76,13 @@ msgid "Confirm delete legend"
|
|||
msgstr "Important: read before deleting users"
|
||||
|
||||
msgid "Confirm delete info"
|
||||
msgstr "Please confirm that you want to delete these users."
|
||||
msgstr "Please confirm that you want to delete these users: %s."
|
||||
|
||||
msgid "Delete posts"
|
||||
msgstr "Delete any posts and topics these users have made."
|
||||
msgstr "Delete any posts and topics"
|
||||
|
||||
msgid "Delete warning"
|
||||
msgstr "Warning! Deleted users and/or posts cannot be restored. If you choose not to delete the posts made by these users, the posts can only be deleted manually at a later time."
|
||||
msgstr "<b>Warning!</b> Deleted users and/or posts cannot be restored. If you choose not to delete the posts made by these users, the posts can only be deleted manually at a later time."
|
||||
|
||||
msgid "Users delete redirect"
|
||||
msgstr "Users deleted. Redirecting …"
|
||||
|
|
|
@ -66,20 +66,23 @@ msgstr "Неверная группа."
|
|||
msgid "Users move redirect"
|
||||
msgstr "Пользователям изменена группа. Переадресация..."
|
||||
|
||||
msgid "Delete users"
|
||||
msgid "Deleting users"
|
||||
msgstr "Удаление пользователей"
|
||||
|
||||
msgid "Delete users"
|
||||
msgstr "Удалить пользователей"
|
||||
|
||||
msgid "Confirm delete legend"
|
||||
msgstr "ВАЖНО: прочтите перед удалением"
|
||||
|
||||
msgid "Confirm delete info"
|
||||
msgstr "Пожалуйста, подтвердите удаление пользователя."
|
||||
msgstr "Пожалуйста, подтвердите удаление этих пользователей: %s."
|
||||
|
||||
msgid "Delete posts"
|
||||
msgstr "Удалить все темы и сообщения пользователей."
|
||||
msgstr "Удалить все темы и сообщения"
|
||||
|
||||
msgid "Delete warning"
|
||||
msgstr "Предупреждаем! Удалённых пользователей и/или сообщения невозможно восстановить. Если вы выберете "не удалять сообщения", их можно будет удалить вручную в любое время."
|
||||
msgstr "<b>Предупреждение!</b> Удалённых пользователей (и сообщения) невозможно восстановить. Если вы выберете "не удалять сообщения", их можно будет удалить вручную в любое время."
|
||||
|
||||
msgid "Users delete redirect"
|
||||
msgstr "Пользователи удалены. Переадресация..."
|
||||
|
|
|
@ -41,7 +41,10 @@ img,
|
|||
abbr,
|
||||
cite,
|
||||
address,
|
||||
article {
|
||||
article,
|
||||
input,
|
||||
textarea,
|
||||
a {
|
||||
border: 0;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
|
@ -49,11 +52,13 @@ article {
|
|||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
word-wrap: break-word;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
list-style: none;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
/*******************/
|
||||
|
@ -90,7 +95,6 @@ ol {
|
|||
}
|
||||
|
||||
html {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
@ -175,6 +179,7 @@ body,
|
|||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.f-btn.f-minor {
|
||||
|
@ -1647,7 +1652,7 @@ select {
|
|||
|
||||
.f-btnsrow-form .f-btns .f-btn {
|
||||
width: auto;
|
||||
display: inline;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#id-message {
|
||||
|
@ -2294,8 +2299,9 @@ select {
|
|||
text-align: right;
|
||||
}
|
||||
|
||||
.f-search-result-form .f-btns .f-btn {
|
||||
display: inline;
|
||||
.f-search-result-form .f-btns .f-btn,
|
||||
.f-delete-users-form .f-btns .f-btn{
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue