8 isset(
$user) or require
$_SERVER[
'DOCUMENT_ROOT'] .
'/page/404.php';
10 header(
"Content-type: application/json");
13 array_walk_recursive(
$_POST,
function (&$item) {
14 $item = trim(htmlspecialchars($item, ENT_QUOTES));
18 if (empty(
$_POST[
'owner_group']) || !in_array(
$_POST[
'owner_group'],
$user->subordinate_groups)) {
19 exit(json_encode([
'error' =>
'"Группа владелец" не найдена среди подчиненных групп']));
22 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'])) {
23 exit(json_encode([
'error' =>
'Лимит моделей для данной группы исчерпан']));
26 if (empty(
$_POST[
'cli']) && (empty(
$_POST[
'request']) || !preg_match(
'#^/[a-z0-9]*#i',
$_POST[
'request']))) {
27 exit(json_encode([
'error' =>
'Неверный формат для "Запрос"']));
30 if (!empty(
$_POST[
'user_id'])) {
33 exit(json_encode([
'error' =>
'Исполнитель не найден в системе!']));
35 if (!
$user->access()->write($row,
true)) {
36 exit(json_encode([
'error' =>
'Недостаточно прав для выполнения задач от этого пользователя']));
43 $cron = Cron\CronExpression::factory(
$_POST[
'shedule']);
44 }
catch (\Throwable $th) {
45 exit(json_encode([
'error' => $th->getMessage()]));
49 for (
$i = 0;
$i < 25;
$i++) {
50 $shedules[] = $cron->getNextRunDate(
null,
$i)->format(
'Y-m-d H:i:s');
54 exit(json_encode([
'error' =>
'Расписание указано некорректно']));
59 if (empty(
$_POST[
'method']) || !in_array(
$_POST[
'method'], [
'GET',
'POST',
'PUT',
'DELETE',
'CLI'])) {
60 exit(json_encode([
'error' =>
'Метод запроса указан некорректно']));
63 if (
$_POST[
'method'] ==
'CLI') {
69 foreach (
$_POST[
'headers'] as $key => $item) {
70 $arr = explode(
':', $item, 2);
77 foreach (
$_POST[
'data'] as $key => $item) {
78 $arr = array_map(
'trim', explode(
':', $item, 2));
80 unset(
$_POST[
'data'][$key]);
85 if (Wrong\Models\Crontabs::create(
$_POST)) {
86 exit(json_encode([
'result' =>
'ok',
'message' =>
'Успешно']));
89 exit(json_encode([
'error' =>
'Ошибка']));
catch(\Throwable $th) $shedules
if(empty($_POST['name'])) if(empty($_POST['type'])||!in_array($_POST['type'], ['page', 'modal', 'incode', 'select', 'action'])) $i
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