edit-file.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 (!($row = Wrong\Database\Controller::find($_POST['id'], 'id', $_POST['table']))) {
17  exit(json_encode(['error' => 'Ошибка']));
18 }
19 
20 if ($user->access()->is_system($row)) {
21  exit(json_encode(['error' => 'Изменить имя файла обработчика системного функционала нельзя!']));
22 }
23 
24 if (!$user->access()->write($row)) {
25  exit(json_encode(['error' => 'Недостаточно прав!']));
26 }
27 
28 if (
29  Wrong\Database\Controller::find($_POST['file'], 'file', $_POST['table'])->file == $_POST['file'] &&
30  Wrong\Database\Controller::find($_POST['file'], 'file', $_POST['table'])->id != $_POST['id']
31 ) {
32  exit(json_encode(['error' => 'Файл обработчик с таким именем уже зарегистрирован в БД!']));
33 }
34 
35 Wrong\Check\Model::file($_POST, $_POST['table'], true);
36 Wrong\File\Path::mkdir($_SERVER['DOCUMENT_ROOT'] . $_POST['file']);
37 
38 if (rename($_SERVER['DOCUMENT_ROOT'] . $row->file, $_SERVER['DOCUMENT_ROOT'] . $_POST['file'])) {
39  Wrong\File\Path::rmdir($_SERVER['DOCUMENT_ROOT'] . $row->file);
40  $sth = $dbh->prepare("UPDATE `{$_POST['table']}` SET `file` = ? WHERE `id` = ?");
41  $sth->bindValue(1, $_POST['file']);
42  $sth->bindValue(2, $_POST['id']);
43  $sth->execute();
44  if ($sth->errorCode() == '00000') {
45  exit(json_encode(['result' => 'ok', 'message' => 'Файл обработчик успешно переименован']));
46  }
47 }
48 
49 exit(json_encode(['error' => 'Ошибка']));
$_POST['groups']
Definition: add-action.php:16
if(!($row=Wrong\Models\Crontabs::find($_POST['id']))) if(! $user->access() ->write($row)) $sth
Definition: edit-cli.php:20
static file($arr, $table, $format_only=false)
Definition: Model.php:65
static mkdir($filename)
Definition: Path.php:23
static rmdir($filename)
Definition: Path.php:54
$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
$dbh
Definition: session.php:19