['view' => false, 'edit' => false, 'cancel' => false]]; } $current = !empty($permissions[$slug]['permissions']['engineer']['view']); $permissions[$slug]['permissions']['engineer']['view'] = !$current; save_permissions($permissions); $message = 'Доступ обновлён.'; $messageType = 'success'; } elseif ($_POST['action'] === 'toggle_edit' && $slug) { if (!isset($permissions[$slug]['permissions'])) { $permissions[$slug]['permissions'] = ['engineer' => ['view' => false, 'edit' => false, 'cancel' => false]]; } $current = !empty($permissions[$slug]['permissions']['engineer']['edit']); $permissions[$slug]['permissions']['engineer']['edit'] = !$current; if ($permissions[$slug]['permissions']['engineer']['edit']) { $permissions[$slug]['permissions']['engineer']['view'] = true; } save_permissions($permissions); $message = 'Доступ обновлён.'; $messageType = 'success'; } elseif ($_POST['action'] === 'toggle_cancel' && $slug) { if (!isset($permissions[$slug]['permissions'])) { $permissions[$slug]['permissions'] = ['engineer' => ['view' => false, 'edit' => false, 'cancel' => false]]; } $current = !empty($permissions[$slug]['permissions']['engineer']['cancel']); $permissions[$slug]['permissions']['engineer']['cancel'] = !$current; if ($permissions[$slug]['permissions']['engineer']['cancel']) { $permissions[$slug]['permissions']['engineer']['view'] = true; } save_permissions($permissions); $message = 'Доступ обновлён.'; $messageType = 'success'; } elseif ($_POST['action'] === 'sort_up' || $_POST['action'] === 'sort_down') { $docs = get_docs_list(); $idx = -1; foreach ($docs as $i => $d) { if ($d['slug'] === $slug) { $idx = $i; break; } } if ($idx >= 0) { $swapIdx = $_POST['action'] === 'sort_up' ? $idx - 1 : $idx + 1; if ($swapIdx >= 0 && $swapIdx < count($docs)) { $aSlug = $docs[$idx]['slug']; $bSlug = $docs[$swapIdx]['slug']; $aSort = $permissions[$aSlug]['sort_order'] ?? $idx; $bSort = $permissions[$bSlug]['sort_order'] ?? $swapIdx; $permissions[$aSlug]['sort_order'] = $bSort; $permissions[$bSlug]['sort_order'] = $aSort; save_permissions($permissions); $message = 'Порядок изменён.'; $messageType = 'success'; } } } } } $permissions = load_permissions(); $docs = get_docs_list(); if (empty($_SESSION['csrf_token'])) { $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); } require __DIR__ . '/../../inc/header.php'; ?>
$doc): $p = $permissions[$doc['slug']] ?? []; $engPerms = $p['permissions']['engineer'] ?? ['view' => false, 'edit' => false, 'cancel' => false]; // Backward compat: old boolean 'engineer' field if (!isset($p['permissions']) && !empty($p['engineer'])) { $engPerms = ['view' => true, 'edit' => false, 'cancel' => false]; } ?>
Документ Файл Просмотр Редакт. Отмена Действия
Нет документов. Добавьте .md-файлы в service/docs/

Как это работает