add-user.php
См. документацию.
1 <?php
2 
3 /**
4  * @file
5  * @brief обработчик добавления нового пользователя
6  */
7 
8 isset($user) or require $_SERVER['DOCUMENT_ROOT'] . '/page/404.php';
9 
10 header("Content-type: application/json");
11 
12 array_walk_recursive($_POST, function (&$item) {
13  $item = trim(htmlspecialchars($item, ENT_QUOTES));
14 });
15 
16 if (empty($_POST['email']) || !filter_var(trim($_POST['email']), FILTER_VALIDATE_EMAIL)) {
17  exit(json_encode(['error' => 'Email указан некорректно']));
18 }
19 
20 if (empty($_POST['password']) || mb_strlen(trim($_POST['password']), 'utf-8') < 5) {
21  exit(json_encode(['error' => 'В пароле должно быть минимум 5 символов']));
22 }
23 
24 if (Wrong\Auth\User::match($_POST['email'])) {
25  exit(json_encode(['error' => 'Пользователь с этим email уже существует']));
26 }
27 
28 $_POST['groups'] = array_map('intval', array_values(array_intersect($user->subordinate_groups, empty($_POST['groups']) ? [] : array_keys($_POST['groups']))));
29 
30 if (empty($_POST['owner_group']) || !in_array($_POST['owner_group'], $user->subordinate_groups)) {
31  exit(json_encode(['error' => '"Группа владелец" не найдена среди подчиненных групп']));
32 }
33 
34 if (($models_limit = Wrong\Database\Controller::find($_POST['owner_group'], 'id', 'groups')->models_limit) && $models_limit <= Wrong\Rights\Group::count_all_owner_models($_POST['owner_group'])) {
35  exit(json_encode(['error' => 'Лимит моделей для данной группы исчерпан']));
36 }
37 
38 if (Wrong\Models\Users::create($_POST['email'], $_POST['password'], $_POST['groups'], $_POST['owner_group'])) {
39  exit(json_encode(['result' => 'ok', 'message' => 'Пользователь успешно создан']));
40 }
41 
42 exit(json_encode(['error' => 'Ошибка']));
if(empty($_POST['email'])||!filter_var(trim($_POST['email']), FILTER_VALIDATE_EMAIL)) if(empty($_POST['password'])||mb_strlen(trim($_POST['password']), 'utf-8')< 5) if(Wrong\Auth\User::match($_POST['email'])) $_POST['groups']
Definition: add-user.php:28
$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