|
@@ -137,7 +137,7 @@ class Action extends Users
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * Создает массив данных для формы статистики пользователя по ip
|
|
|
+ * Создает массив данных для формы удаления пользователей
|
|
|
*
|
|
|
* @param array $stat
|
|
|
* @param int $number
|
|
@@ -154,14 +154,6 @@ class Action extends Users
|
|
|
'token' => $this->c->Csrf->create('AdminUsersAction', $args),
|
|
|
],
|
|
|
'sets' => [
|
|
|
- 'info' => [
|
|
|
- 'info' => [
|
|
|
- 'info1' => [
|
|
|
- 'type' => '', //????
|
|
|
- 'value' => \ForkBB\__('Confirm delete info', $names),
|
|
|
- ],
|
|
|
- ],
|
|
|
- ],
|
|
|
'options' => [
|
|
|
'fields' => [
|
|
|
'confirm' => [
|
|
@@ -169,6 +161,7 @@ class Action extends Users
|
|
|
'value' => 0,
|
|
|
'values' => $yn,
|
|
|
'caption' => \ForkBB\__('Delete users'),
|
|
|
+ 'info' => \ForkBB\__('Confirm delete info', $names),
|
|
|
],
|
|
|
'delete_posts' => [
|
|
|
'type' => 'radio',
|
|
@@ -204,4 +197,121 @@ class Action extends Users
|
|
|
|
|
|
return $form;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Возвращает список групп доступных для замены
|
|
|
+ *
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ protected function groupListForChange()
|
|
|
+ {
|
|
|
+ $list = [];
|
|
|
+ foreach ($this->c->groups->getList() as $id => $group) {
|
|
|
+ if (! $group->groupGuest && ! $group->groupAdmin) {
|
|
|
+ $list[$id] = $group->g_title;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $list;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Изменяет группу пользователей
|
|
|
+ *
|
|
|
+ * @param array $args
|
|
|
+ * @param string $method
|
|
|
+ *
|
|
|
+ * @return Page
|
|
|
+ */
|
|
|
+ protected function change(array $args, $method)
|
|
|
+ {
|
|
|
+ if ('POST' === $method) {
|
|
|
+ $groupList = \implode(',', \array_keys($this->groupListForChange()));
|
|
|
+ $v = $this->c->Validator->reset()
|
|
|
+ ->addRules([
|
|
|
+ 'token' => 'token:AdminUsersAction',
|
|
|
+ 'new_group' => 'required|integer|in:' . $groupList,
|
|
|
+ 'confirm' => 'required|integer|in:0,1',
|
|
|
+ 'move' => 'string',
|
|
|
+ ])->addAliases([
|
|
|
+ ])->addArguments([
|
|
|
+ 'token' => $args,
|
|
|
+ ]);
|
|
|
+
|
|
|
+ if (! $v->validation($_POST) || $v->confirm !== 1) {
|
|
|
+ return $this->c->Redirect->page('AdminUsers')->message('No confirm redirect');
|
|
|
+ }
|
|
|
+
|
|
|
+ $this->c->DB->beginTransaction();
|
|
|
+
|
|
|
+ $this->c->users->changeGroup($v->new_group, ...$this->userList);
|
|
|
+
|
|
|
+ $this->c->DB->commit();
|
|
|
+
|
|
|
+ $this->c->Cache->delete('stats'); //???? перенести в manager
|
|
|
+ $this->c->Cache->delete('forums_mark'); //???? с авто обновлением кеша
|
|
|
+
|
|
|
+ return $this->c->Redirect->page('AdminUsers')->message('Users move redirect');
|
|
|
+ }
|
|
|
+
|
|
|
+ $this->nameTpl = 'admin/form';
|
|
|
+ $this->classForm = 'change-group';
|
|
|
+ $this->titleForm = \ForkBB\__('Change user group');
|
|
|
+ $this->aCrumbs[] = [$this->c->Router->link('AdminUsersAction', $args), \ForkBB\__('Change user group')];
|
|
|
+ $this->form = $this->formChange($args);
|
|
|
+
|
|
|
+ return $this;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Создает массив данных для формы изменения группы пользователей
|
|
|
+ *
|
|
|
+ * @param array $stat
|
|
|
+ * @param int $number
|
|
|
+ *
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ protected function formChange(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' => [
|
|
|
+ 'options' => [
|
|
|
+ 'fields' => [
|
|
|
+ 'new_group' => [
|
|
|
+ 'type' => 'select',
|
|
|
+ 'options' => $this->groupListForChange(),
|
|
|
+ 'value' => $this->c->config->o_default_user_group,
|
|
|
+ 'caption' => \ForkBB\__('New group label'),
|
|
|
+ 'info' => \ForkBB\__('New group help', $names),
|
|
|
+ ],
|
|
|
+ 'confirm' => [
|
|
|
+ 'type' => 'radio',
|
|
|
+ 'value' => 0,
|
|
|
+ 'values' => $yn,
|
|
|
+ 'caption' => \ForkBB\__('Move users'),
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'btns' => [
|
|
|
+ 'move' => [
|
|
|
+ 'type' => 'submit',
|
|
|
+ 'value' => \ForkBB\__('Move users'),
|
|
|
+ 'accesskey' => 'm',
|
|
|
+ ],
|
|
|
+ 'cancel' => [
|
|
|
+ 'type' => 'btn',
|
|
|
+ 'value' => \ForkBB\__('Cancel'),
|
|
|
+ 'link' => $this->c->Router->link('AdminUsers'),
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ ];
|
|
|
+
|
|
|
+ return $form;
|
|
|
+ }
|
|
|
}
|