8 isset(
$user) or require
$_SERVER[
'DOCUMENT_ROOT'] .
'/page/404.php';
10 header(
"Content-type: application/json");
12 array_walk_recursive(
$_POST,
function (&$item) {
13 $item = trim(htmlspecialchars($item, ENT_QUOTES));
16 if (empty(
$_POST[
'name'])) {
17 exit(json_encode([
'error' =>
'Имя группы не указано']));
20 if (in_array(
$_POST[
'name'], Wrong\Rights\Group::$group_names)) {
21 exit(json_encode([
'error' =>
'В системе уже есть группа с таким именем']));
24 if (empty(
$_POST[
'owner_group']) || !in_array(
$_POST[
'owner_group'],
$user->subordinate_groups)) {
25 exit(json_encode([
'error' =>
'"Группа владелец" не найдена среди подчиненных групп']));
29 exit(json_encode([
'error' =>
'Системный вес указан некорректно']));
32 if (empty(
$_POST[
'path'])) {
33 exit(json_encode([
'error' =>
'Каталог по умолчанию не указан']));
36 if (!preg_match(
'#^[a-z0-9]+$#',
$_POST[
'path'])) {
37 exit(json_encode([
'error' =>
'Некорректное имя каталога по умолчанию, только символы нижнего регистра и цифры']));
40 if (($row = Wrong\Database\Controller::find(
$_POST[
'path'],
'path',
'groups')) && !in_array($row->id,
$user->subordinate_groups)) {
41 exit(json_encode([
'error' =>
'Недостаточно прав для использования каталога <b>' .
$_POST[
'path'] .
'</b>']));
44 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'])) {
45 exit(json_encode([
'error' =>
'Лимит моделей для данной группы исчерпан']));
48 if (Wrong\Models\Groups::create(
$_POST)) {
49 exit(json_encode([
'result' =>
'ok',
'message' =>
'Группа успешно создана']));
52 exit(json_encode([
'error' =>
'Ошибка']));
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']
if(($dbh=Connect::getInstance(true) ->dbh) && $dbh->query("SHOW TABLES") ->fetchAll() && $dbh->query("SELECT COUNT(*) FROM `users`") ->fetchColumn()) if(!empty($_POST)) exit