EngineGP

Форк
0
/
servers.php 
125 строк · 4.9 Кб
1
<?php
2
/*
3
 * EngineGP   (https://enginegp.ru or https://enginegp.com)
4
 *
5
 * @copyright Copyright (c) 2018-present Solovev Sergei <inbox@seansolovev.ru>
6
 *
7
 * @link      https://github.com/EngineGPDev/EngineGP for the canonical source repository
8
 *
9
 * @license   https://github.com/EngineGPDev/EngineGP/blob/main/LICENSE MIT License
10
 */
11

12
if (!defined('EGP')) {
13
    exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
14
}
15

16
// Проверка на авторизацию
17
sys::noauth();
18

19
if (!$id and $user['group'] == 'user') {
20
    $servers = $sql->query('SELECT `id` FROM `servers` WHERE `user`="' . $user['id'] . '" LIMIT 1');
21
    $owners = $sql->query('SELECT `id` FROM `owners` WHERE `user`="' . $user['id'] . '" LIMIT 1');
22

23
    if (!$sql->num($servers) and !$sql->num($owners)) {
24
        sys::back($cfg['http'] . 'services');
25
    } // Если нет игровых серверов отправить на страницу аренды
26
}
27

28
if ($id and !$section) {
29
    $section = 'index';
30
}
31

32
$title = 'Управление игровыми серверами';
33

34
// Подключение раздела
35
if (in_array($section, ['action', 'scan', 'index', 'console', 'settings', 'plugins', 'maps', 'owners', 'filetp', 'tarif', 'copy', 'graph', 'web', 'boost', 'rcon'])) {
36
    if (!$id) {
37
        sys::back($cfg['http'] . 'servers');
38
    }
39

40
    if ($user['group'] == 'admin' || ($user['group'] == 'support' and $user['level'])) {
41
        if ($user['group'] == 'support' and $user['level'] < 2) {
42
            $sql->query('SELECT `id` FROM `servers` WHERE `id`="' . $id . '" AND `user`="' . $user['id'] . '" LIMIT 1');
43
            if (!$sql->num()) {
44
                $sql->query('SELECT `id` FROM `help` WHERE `type`="server" AND `service`="' . $id . '" LIMIT 1');
45
                if (!$sql->num()) {
46
                    $sql->query('SELECT `rights` FROM `owners` WHERE `server`="' . $id . '" AND `user`="' . $user['id'] . '" LIMIT 1');
47
                    if (!$sql->num()) {
48
                        sys::back($cfg['http'] . 'servers');
49
                    }
50

51
                    $owner = $sql->get();
52

53
                    $rights = sys::b64djs($owner['rights']);
54

55
                    if ($section == 'action') {
56
                        if (!isset($rights[$url['action']]) || !$rights[$url['action']]) {
57
                            sys::outjs(['e' => 'У вас нет доступа к данному серверу']);
58
                        }
59
                    } else {
60
                        if (!in_array($section, ['index', 'scan']) and (!isset($rights[$section]) || !$rights[$section])) {
61
                            sys::back($cfg['http'] . 'servers');
62
                        }
63
                    }
64
                }
65
            }
66
        }
67

68
        $sql->query('SELECT `id` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
69
    } else {
70
        $sql->query('SELECT `id` FROM `servers` WHERE `id`="' . $id . '" AND `user`="' . $user['id'] . '" LIMIT 1');
71
        if (!$sql->num()) {
72
            $sql->query('SELECT `rights` FROM `owners` WHERE `server`="' . $id . '" AND `user`="' . $user['id'] . '" LIMIT 1');
73
            if (!$sql->num()) {
74
                sys::back($cfg['http'] . 'servers');
75
            }
76

77
            $owner = $sql->get();
78

79
            $rights = sys::b64djs($owner['rights']);
80

81
            if ($section == 'action') {
82
                if (!isset($rights[$url['action']]) || !$rights[$url['action']]) {
83
                    sys::outjs(['e' => sys::text('error', 'ser_owner')]);
84
                }
85
            } else {
86
                if (!in_array($section, ['index', 'scan']) and (!isset($rights[$section]) || !$rights[$section])) {
87
                    sys::back($cfg['http'] . 'servers/id/' . $owner['server']);
88
                }
89
            }
90

91
            $sql->query('SELECT `id` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
92
        }
93
    }
94

95
    if (!$sql->num()) {
96
        sys::back($cfg['http'] . 'servers');
97
    } // Если нет игрового сервера отправить на страницу списка
98

99
    $html->nav($title, $cfg['http'] . 'servers');
100

101
    $file_section = file_exists(SEC . 'servers/' . $section . '.php');
102
    if ($file_section) {
103
        include(SEC . 'servers/' . $section . '.php');
104
    } else {
105
        sys::back($cfg['http'] . 'servers/id/' . $id);
106
    }
107

108
} else {
109
    $html->nav($title);
110

111
    if ($user['group'] == 'user' and $mcache->get('servers_' . $user['id']) != '') {
112
        $html->arr['main'] = $mcache->get('servers_' . $user['id']);
113
    } else {
114
        include(SEC . 'servers/list.php');
115
        include(SEC . 'servers/owners_list.php');
116

117
        $html->get('servers', 'sections/servers');
118
        $html->set('list', $html->arr['list'] ?? 'У вас нет игровых серверов', true);
119
        $html->set('wait_servers', $wait_servers);
120
        $html->set('updates_servers', $updates_servers);
121
        $html->pack('main');
122

123
        $mcache->set('servers_' . $user['id'], $html->arr['main'], false, 4);
124
    }
125
}
126

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.