add-from-group.php
См. документацию.
1 <?php
2 
3 /**
4  * @file
5  * @brief обработчик массовое добавление в группу пользователей другой группы
6  */
7 
8 isset($user) or require $_SERVER['DOCUMENT_ROOT'] . '/page/404.php';
9 
10 set_time_limit(0);
11 
12 header("Content-type: application/json");
13 
14 if (!($row = Wrong\Models\Groups::find($_POST['id']))) {
15  exit(json_encode(['error' => 'Ошибка']));
16 }
17 
18 if ($user->access()->is_system($row)) {
19  exit(json_encode(['error' => 'Этот функционал недоступен для системных групп!']));
20 }
21 
22 if (!$user->access()->write($row)) {
23  exit(json_encode(['error' => 'Недостаточно прав!']));
24 }
25 
26 if (!($source = Wrong\Models\Groups::find($_POST['source_group'])) || !$user->access()->write($source, true)) {
27  exit(json_encode(['error' => 'Ошибка']));
28 }
29 
30 foreach ($dbh->query("SELECT * FROM `users` WHERE JSON_CONTAINS(`groups`, $row->id) = 1 AND JSON_CONTAINS(`groups`, $source->id) = 0") as $item) {
31  if (in_array($item->owner_group, $user->subordinate_groups)) {
32  $arr = json_decode($item->groups, true);
33  $arr[] = $source->id;
34  $arr = array_values(array_unique(array_map('intval', $arr)));
35  $dbh->query("UPDATE `users` SET `groups` = '" . json_encode($arr) . "' WHERE `id` = $item->id");
36  }
37 }
38 
39 exit(json_encode(['result' => 'ok', 'message' => 'Пользователям группы <b>' . $row->name . '</b> добавлена группа <b>' . $source->name . '</b>']));
$_POST['groups']
Definition: add-action.php:16
$user
Definition: from-user.php:38
setcookie('FROM_UID', $uid, [ 'expires'=> time()+31536000, 'path'=> '/', 'domain'=> $_SERVER['HTTP_HOST'], 'secure'=> Wrong\Start\Env::$e->IS_SECURE, 'httponly'=> false, 'samesite'=> Wrong\Start\Env::$e->IS_SECURE ? 'None' :'Lax']) or setcookie('FROM_UID' $_SERVER['HTTP_HOST']
Definition: from-user.php:36
if(($dbh=Connect::getInstance(true) ->dbh) && $dbh->query("SHOW TABLES") ->fetchAll() && $dbh->query("SELECT COUNT(*) FROM `users`") ->fetchColumn()) if(!empty($_POST)) exit
Definition: install.php:198
$arr
Definition: actions.php:25
$dbh
Definition: session.php:19