-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.php
117 lines (95 loc) · 4.91 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
error_reporting(E_ERROR);
require_once('functions/database.php');
require_once('functions/functions.php');
require_once('functions/access.php');
// подключение к БД
$link = startup();
$_SESSION['noAccessImportInDb'] = null; //если произошел редирект с admin.php, то эта запись в сессии больше не нужна
$_SESSION['sortedByVlan'] = null; //сброс данных в сессии, которые указывали, что была сортировка по влан
//$_SESSION['sortedByDateLastEdited'] = null; // сброс данных в сессии, которые указывали, что была сортировка по дате последней правки
//очистка старых сессий
clearSessionsInDB($link);
//Определение текущего пользователя
$user = getCurrentUser($link);
//Определяем, может ли пользователь редактировать и удалять и добавлять записи, а также находиться в админ-панели
$canDoEdit = canDo($link, $user, 'EDIT_ENTRY');
$canDoDelete = canDo($link, $user, 'DELETE_ENTRY');
$canDoAdd = canDo($link, $user, 'ADD_ENTRY');
$canDoViewAdminPanel = canDo($link, $user, 'ADMIN_PANEL');
//вытаскиваем полное число записей из БД
$numEntriesAll = getEntriesAll($link);
//Вытаскиваем записи из БД для постраничной навигации
//$entries_arr = get_entries_num_start($link); //сортировка идет по первичному ключу записей
$entries_arr = sortedByDateLastEdited($link); //сортировка идет по дате последней правки
//Разбираем полученный массив. Подробнее в functions.php
$entries = $entries_arr[0];
$page = $entries_arr[1]; //текущая страница
$total = $entries_arr[2]; //всего страниц
//Если массив $_GET не пустой, то обработка правки и удаления записей
if (($_GET['action']) == 'edit') {
//правка записи
//если нет прав - редирект на главную
if (!$canDoEdit) {
header('Location: index.php');
die();
}
$entry = get_entry($link, $_GET['id_entry']); //вытаскиваем конкретную запись из БД
//Разбираем массив в переменные
$id_entry = $entry['id_entry'];
$numOrder = $entry['numOrder'];
$customer = $entry['customer'];
$tarif = $entry['tarif'];
$ip_address = $entry['ip_address'];
$netmask = $entry['netmask'];
$gateway = $entry['gateway'];
$vlan_id = $entry['vlan_id'];
$customer_port = $entry['customer_port'];
$termination_point = $entry['termination_point'];
$commentary = $entry['commentary'];
//Выводим в шаблоны
include_once('views/v-header.php');
include_once('views/v-menu.php');
include_once('views/v-edit.php');
include_once('views/v-footer.php');
die();
}
elseif (($_GET['action']) == 'delete') {
if ($canDoDelete) { //проверка, есть ли права удалять записи
if (delete_entry($link, $user, $_GET['id_entry'])) {
header('Location: index.php');
die();
}
}
}
//обработка отправки формы для редактирования записи
elseif (!empty($_POST)) { //если массив не пустой
if (entry_edit($link, $user, $_POST['id_entry'], $_POST['numOrder'], $_POST['customer'],
$_POST['tarif'], $_POST['ip_address'], $_POST['netmask'], $_POST['gateway'],
$_POST['vlan_id'], $_POST['customer_port'], $_POST['termination_point'],
$_POST['commentary'])) { //update в базе. Если успешно - редирект на главную
header('Location: index.php');
die();
}
//сохраняем введенные в поля данные, если что-то пошло не так
$numOrder = $_POST['numOrder'];
$customer = $_POST['customer'];
$tarif = $_POST['tarif'];
$ip_address = $_POST['ip_address'];
$netmask = $_POST['netmask'];
$gateway = $_POST['gateway'];
$vlan_id = $_POST['vlan_id'];
$customer_port = $_POST['customer_port'];
$termination_point = $_POST['termination_point'];
$commentary = $_POST['commentary'];
}
//Иначе - отображение записей
//Выводим в шаблоны
include_once('views/v-header.php');
include_once('views/v-menu.php');
include_once('views/v-index.php');
//подключаем нижнее меню навигации
$current_page = 'index.php';
include_once('ss/menu_navigation.php');
include_once('views/v-footer.php');
?>