Exemple #1
0
function intAssignValues(&$smarty, $add_success, $err)
{
    $smarty->assign("category", $_REQUEST["category"]);
    $smarty->assign("category_name", "{#" . $_REQUEST["category"] . "#}");
    $smarty->assign("admin_username", $_REQUEST["admin_username"]);
    $smarty->assign("add_success", $add_success);
    $smarty->assign("can_change", canDo("CHANGE ADMIN PERMISSIONS"));
    intAssignMsgErr($smarty, $err);
    list($success, $perms) = getPermsOfCategory($_REQUEST["category"]);
    if (!$success) {
        $smarty->set_page_error($perms->getErrorMsgs());
    } else {
        intAssignSelectedPermVals($smarty);
        intAssignPerms($smarty, $perms);
    }
}
Exemple #2
0
function smarty_block_canDo($params, $content, &$smarty, &$repeat)
{
    /*
        print block only if admin canDo "perm_name"
        if optional argument "username" is passed to this function it will checked with currently logged in user
        and block will be shown if "username" and authenticated user was the same. This is Useful 
        for pages that admin can see his info always, and other admin infos when he has permission.
        
        WARNING: perm.php and auth.php should be included by smarty object creator
    */
    if (is_null($content)) {
        if (isset($params["username"]) and getAuthUsername() == $params["username"]) {
            return;
        }
        if (canDo($params["perm_name"])) {
            return;
        }
        $repeat = FALSE;
    } else {
        return $content;
    }
}
Exemple #3
0
<?php

error_reporting(E_ERROR);
//Сценарий для обработки запросов к БД из форм поисков
require_once 'functions/database.php';
require_once 'functions/functions.php';
require_once 'functions/access.php';
// подключение к БД
$link = startup();
//Определение текущего пользователя
$user = getCurrentUser($link);
//Определяем, может ли пользователь редактировать, добавлять, удалять записи и видеть панель администратора
$canDoEdit = canDo($link, $user, 'EDIT_ENTRY');
$canDoAdd = canDo($link, $user, 'ADD_ENTRY');
$canDoDelete = canDo($link, $user, 'DELETE_ENTRY');
$canDoViewAdminPanel = canDo($link, $user, 'ADMIN_PANEL');
//вытаскиваем полное число записей из БД
//$numEntriesAll = getEntriesAll($link);
if (!empty($_POST['numOrder'])) {
    //Поиск записей по номеру договора
    $entries = get_entry_by_order($link, $_POST['numOrder']);
    $searchStringNumOrder = $_POST['numOrder'];
} else {
    if (!empty($_POST['customer'])) {
        //Поиск записей по название клиента
        $entries = get_entries_by_customer($link, $_POST['customer']);
        $searchStringCustomer = $_POST['customer'];
    } else {
        if (!empty($_POST['ip_address'])) {
            //Поиск записей по IP-адресу
            $entries = get_entries_by_ip($link, $_POST['ip_address']);
Exemple #4
0
//Определяем, может ли пользователь находиться в панели администратор
$canDoViewAdminPanel = canDo($link, $user, 'ADMIN_PANEL');
if (!$canDoViewAdminPanel) {
    header('Location: index.php');
    die('не положено!');
}
//Определяем, может ли пользователь добавлять записи
$canDoAdd = canDo($link, $user, 'ADD_ENTRY');
//Определяем, может ли пользователь делать импорт в БД файлов .cvs
$canDoImportInDb = canDo($link, $user, 'IMPORT_IN_DB');
//Определяем, может ли пользователь управлять пользователями (расширенный вариант)
$canDoSuperusersControl = canDo($link, $user, 'SUPERUSERS_CONTROL');
//Обработка правки сообщения дня
if ($_GET['action'] == 'edit') {
    //проверка, есть ли права на правку сообщение дня
    $canDoEditMotd = canDo($link, $user, 'EDIT_MOTD');
    if (!$canDoEditMotd) {
        header('Location: admin.php');
        die;
    } else {
        //Вытаскивание сообщения дня
        $motd = get_motd($link);
        //Разбираем массив в переменные
        $text = $motd['text'];
        $autor = $motd['autor'];
        $dt_modt = $motd['dt_motd'];
        //Выводим в шаблоны
        include_once 'views/v-header.php';
        include_once 'views/v-menu.php';
        include_once 'views/v-motd.php';
        include_once 'views/v-footer.php';
Exemple #5
0
function intShowTariffInfo(&$smarty, $tariff_name)
{
    intSetTariffInfo($smarty, $tariff_name);
    $smarty->assign("can_change", canDo("CHANGE VOIP TARIFF"));
    $smarty->display("admin/charge/voip_tariff/tariff_info.tpl");
}
Exemple #6
0
function changeTerminationPoint($link, $user, $vlanNumber, $newTerminationPoint)
{
    //проверка на наличие прав
    require_once 'access.php';
    $canDoEdit = canDo($link, $user, 'EDIT_ENTRY');
    if (!$canDoEdit) {
        header('Location: index.php');
        die;
    }
    //подготовка
    $vlanNumber = (int) $vlanNumber;
    if ($vlanNumber == 0) {
        $_SESSION['updateTerminationForVlan'] = "Некорректный номер влана!";
        header('Location: admin.php');
        die;
    }
    //узнаем текущую терминацию
    $queryForCurrentTerminationPoint = "SELECT termination_point FROM spd_table WHERE vlan_id={$vlanNumber}";
    $resultForCurrentTerminationPoint = mysqli_query($link, $queryForCurrentTerminationPoint);
    $currentTermination = mysqli_fetch_assoc($resultForCurrentTerminationPoint)['termination_point'];
    $newTerminationPoint = trim($newTerminationPoint);
    $newTerminationPoint = mysqli_real_escape_string($link, $newTerminationPoint);
    //запрос
    $query = "UPDATE spd_table SET termination_point='{$newTerminationPoint}' WHERE vlan_id='{$vlanNumber}'";
    $result = mysqli_query($link, $query);
    if (!$result) {
        die(mysqli_error($link));
    }
    $affected_rows = mysqli_affected_rows($link);
    //запись в сессию
    if ($affected_rows != 0) {
        $_SESSION['updateTerminationForVlan'] = "Терминация успешно изменена для " . $affected_rows . " записей! Влан " . $vlanNumber . " теперь терминируется на " . $newTerminationPoint . "!";
        //запись в лог действий
        //вытаскиваем имя текущего пользователя, чтобы можно было подставить значение в строку сообщения
        $userLogin = $user['login'];
        $dt_action = getCurrentDate();
        $message = "Пользователем {$userLogin} сменена точка терминации c \"{$currentTermination}\" на \"{$newTerminationPoint}\" для влана {$vlanNumber}.";
        //подключение файла с функцией логирования
        require_once 'logging.php';
        //выполняем логирование
        if (!loggingAction($link, $user, $message, $dt_action)) {
            //запись неиспешности в сессию
            $_SESSION['logging'] = 'Логирование действия не удалось!';
        }
    } else {
        $_SESSION['updateTerminationForVlan'] = "Не удалось сменить терминацию для влана " . $vlanNumber . ". Возможно, такого влана нет.";
        return false;
    }
    return true;
}
function intShowSingleUserInfoAssignValues(&$smarty, $user_id, $user_info)
{
    $smarty->assign("can_change", canDo("CHANGE USER ATTRIBUTES", null, (int) $user_id, $user_info[0]["basic_info"]["owner_id"]));
    $smarty->assign("can_delete", canDo("DELETE USER", null, (int) $user_id, $user_info[0]["basic_info"]["owner_id"]));
    intSetSingleUserGroupAttrs($smarty, $user_info[0]);
}
Exemple #8
0
<?php

require_once '../functions/database.php';
require_once '../functions/functions.php';
require_once '../functions/access.php';
//подключение к БД
$link = startup();
//Определение текущего пользователя
$user = getCurrentUser($link);
//Определяем, может ли пользователь делать импорт
$canDoImportInDb = canDo($link, $user, 'FIX_IN_DB');
if (!$canDoImportInDb) {
    $_SESSION['noAccessImportInDb'] = "Недостаточно прав для использования fixQuotes.php";
    header('Location: ../admin.php');
    die('не положено!');
}
//вытащить из БД все строки, где есть символы " и заменить их на &quot;
//вхождение " в поле customer
$searchString = '\\"';
$fixSubString = '\\"';
//устанавливаем счетчик строк
$num = 0;
//формируем запрос
$sql = "SELECT * FROM `spd_table` WHERE `customer` LIKE '%{$searchString}%' ORDER BY `id_entry` ASC";
//выполняем запрос
$result = mysqli_query($link, $sql);
//разбираем дескриптор в ассоциативный массив
$n = mysqli_num_rows($result);
$entriesForFix = array();
for ($i = 0; $i < $n; $i++) {
    $row = mysqli_fetch_assoc($result);
Exemple #9
0
<?php

//скрипт для создания, редактирования и удаления пользователей
require_once '../functions/database.php';
require_once '../functions/functions.php';
require_once '../functions/access.php';
// подключение к БД
$link = startup();
//Определение текущего пользователя
$user = getCurrentUser($link);
//Определяем, может ли пользователь управлять пользователями
$canDoUsersControl = canDo($link, $user, 'USERS_CONTROL');
if (!$canDoUsersControl) {
    header('Location: ../index.php');
    die('123');
}
//Обработка формы
if ($_POST['login'] != null && $_POST['password'] != null) {
    //если вбиты логин и пароль
    if (createNewUser($link, $user, $_POST['login'], $_POST['password'], $_POST['confirmPassword'], $_POST['username'], $_POST['access'])) {
        //если мы здесь, значит, пользователь успешно создался
        header('Location: ../admin.php');
    }
}
//если пустой - то делать тут нечего
header('Location: ../admin.php');
Exemple #10
0
<?php

error_reporting(E_ERROR);
require_once '../functions/database.php';
require_once '../functions/functions.php';
require_once '../functions/access.php';
//подключение к БД
$link = startup();
//Определение текущего пользователя
$user = getCurrentUser($link);
//Определяем, может ли пользователь делать импорт
$canDoImportInDb = canDo($link, $user, 'IMPORT_IN_DB');
if (!$canDoImportInDb) {
    $_SESSION['noAccessImportInDb'] = "Недостаточно прав для импорта данных в БД!";
    header('Location: ../admin.php');
    die('не положено!');
}
//Загрузка файла
if ($_FILES['filename']['size'] > 3000000) {
    echo 'Слишком большой размер файла!';
    die;
}
if ($_FILES['filename']['type'] != application / vnd . ms - excel) {
    echo 'Некорректный тип файла! Файл должен быть в формате .csv';
    die;
}
//Установка переменных
$tmpName = $_FILES['filename']['tmp_name'];
$name = 'spd.csv';
if (!move_uploaded_file($tmpName, $name)) {
    die('Не получилось загрузить файл :(');
function intSetVars(&$smarty, $admin_username, $err, $del_success, $del_val_success, $save_template_success, $load_template_success, $del_template_success)
{
    $can_change = canDo("CHANGE ADMIN PERMISSIONS");
    $smarty->assign("admin_username", $admin_username);
    $smarty->assign("can_change", $can_change);
    $smarty->assign("del_perm_success", $del_success);
    $smarty->assign("del_perm_val_success", $del_val_success);
    $smarty->assign_array(array("save_template_success" => $save_template_success, "load_template_success" => $load_template_success, "del_template_success" => $del_template_success));
    if ($can_change) {
        intSetTemplatesList($smarty);
    }
    if (!is_null($err)) {
        $smarty->set_page_error($err->getErrorMsgs());
    }
}
Exemple #12
0
error_reporting(E_ERROR);
require_once 'functions/database.php';
require_once 'functions/functions.php';
require_once 'functions/access.php';
// подключение к БД
$link = startup();
//Определение текущего пользователя
$user = getCurrentUser($link);
//Определяем, может ли пользователь находиться в панели администратор
$canDoViewAdminPanel = canDo($link, $user, 'ADMIN_PANEL');
if (!$canDoViewAdminPanel) {
    header('Location: index.php');
    die('не положено!');
}
//Определяем, может ли пользователь добавлять записи
$canDoAdd = canDo($link, $user, 'ADD_ENTRY');
//получаем логи из БД для постраничной навигации
$logs_arr = get_logs_num_start($link);
//Разбираем полученный массив. Подробнее в functions.php
$logs = $logs_arr[0];
$page = $logs_arr[1];
//текущая страница
$total = $logs_arr[2];
//всего страниц
$num_rows = $logs_arr[3];
//количество логов на странице
//Достаем общее количество логов
$numLogs = getNumLogs($link);
//Форматирование вытащенных записей логов в удобный вид
$format_old_log = format_log($logs, 'entry_old_log', 50);
$format_new_log = format_new_log($logs, 'entry_new_log', 50);