This commit is contained in:
2018-10-17 11:14:36 +03:00
parent 75a35947e5
commit 04d60d7e2c
2716 changed files with 431449 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
AddDefaultCharset utf-8
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php
+199
View File
@@ -0,0 +1,199 @@
$print:
array(16) {
["id"]=>
string(1) "4"
["name"]=>
string(14) "MININT-15MK94U"
["model"]=>
string(10) "HP LJ 3030"
["unit"]=>
string(9) "0000-0445"
["inventar"]=>
string(7) "3-21333"
["sn"]=>
string(10) "CNBF033770"
["floor"]=>
string(10) "9 этаж"
["id_fl"]=>
string(1) "5"
["department"]=>
string(18) "Аналитики"
["id_dep"]=>
string(1) "9"
["status"]=>
string(15) "В работе"
["id_st"]=>
string(1) "1"
["cartrige"]=>
string(3) "12a"
["id_cart"]=>
string(1) "2"
["img"]=>
string(0) ""
["functions"]=>
array(4) {
[0]=>
array(3) {
["id"]=>
string(1) "1"
["name"]=>
string(12) "Печать"
["description"]=>
NULL
}
[1]=>
array(3) {
["id"]=>
string(1) "3"
["name"]=>
string(34) "Сканирование на ПК"
["description"]=>
NULL
}
[2]=>
array(3) {
["id"]=>
string(1) "4"
["name"]=>
string(40) "Сканирование на почту"
["description"]=>
NULL
}
[3]=>
array(3) {
["id"]=>
string(1) "5"
["name"]=>
string(49) "Двустороннее сканирование"
["description"]=>
NULL
}
}
}
$_POST:
array(11) {
["name"]=>
string(15) "MININT-15MK94U1"
["unit"]=>
string(10) "0000-04452"
["model"]=>
string(11) "HP LJ 30303"
["sn"]=>
string(11) "CNBF0337704"
["inventar"]=>
string(8) "3-213335"
["id_floor"]=>
string(1) "1"
["id_department"]=>
string(1) "1"
["id_cartrige"]=>
string(1) "1"
["id_status"]=>
string(1) "2"
["id_functions"]=>
array(3) {
[0]=>
string(1) "1"
[1]=>
string(1) "3"
[2]=>
string(1) "4"
}
["submit"]=>
string(0) ""
}
checking
$up:
array(10) {
[1]=>
array(3) {
["object"]=>
string(23) "Имя принтера"
["old_data"]=>
string(14) "MININT-15MK94U"
["new_data"]=>
string(15) "MININT-15MK94U1"
}
[2]=>
array(3) {
["object"]=>
string(29) "Модель принтера"
["old_data"]=>
string(10) "HP LJ 3030"
["new_data"]=>
string(11) "HP LJ 30303"
}
[3]=>
array(3) {
["object"]=>
string(32) "Номер UNIT принтера"
["old_data"]=>
string(9) "0000-0445"
["new_data"]=>
string(10) "0000-04452"
}
[4]=>
array(3) {
["object"]=>
string(50) "Инвентарный номер принтера"
["old_data"]=>
string(7) "3-21333"
["new_data"]=>
string(8) "3-213335"
}
[5]=>
array(3) {
["object"]=>
string(44) "Серийный номер принтера"
["old_data"]=>
string(10) "CNBF033770"
["new_data"]=>
string(11) "CNBF0337704"
}
[6]=>
array(3) {
["object"]=>
string(8) "Этаж"
["old_data"]=>
string(1) "5"
["new_data"]=>
string(1) "1"
}
[7]=>
array(3) {
["object"]=>
string(10) "Отдел"
["old_data"]=>
string(1) "9"
["new_data"]=>
string(1) "1"
}
[8]=>
array(3) {
["object"]=>
string(16) "Картридж"
["old_data"]=>
string(1) "2"
["new_data"]=>
string(1) "1"
}
[9]=>
array(3) {
["object"]=>
string(12) "Статус"
["old_data"]=>
string(1) "1"
["new_data"]=>
string(1) "2"
}
[10]=>
array(2) {
["object"]=>
string(29) "Функции удалили"
["old_data"]=>
string(1) "5"
}
}
+21
View File
@@ -0,0 +1,21 @@
<?php
/*
*
*/
function __autoload($class_name){
$array_path = array(
'/models/',
'/controllers/',
'/components/'
);
foreach ($array_path as $path){
$path = ROOT . $path . $class_name . '.php';
if (is_file($path)){
include_once $path;
}
}
}
+80
View File
@@ -0,0 +1,80 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of Date
*
* @author adm_azashchepkin
*/
class Date {
//put your code here
public static function changeDateToUnix($date){
$arr_date = explode("-", $date);
$U_date = mktime(0,0,0,$arr_date[0],$arr_date[1],$arr_date[2]);
return $U_date;
}
public static function changeLocaleDate($date){
$translate = array(
"am" => "дп",
"pm" => "пп",
"AM" => "ДП",
"PM" => "ПП",
"Monday" => "Понедельник",
"Mon" => "Пн",
"Tuesday" => "Вторник",
"Tue" => "Вт",
"Wednesday" => "Среда",
"Wed" => "Ср",
"Thursday" => "Четверг",
"Thu" => "Чт",
"Friday" => "Пятница",
"Fri" => "Пт",
"Saturday" => "Суббота",
"Sat" => "Сб",
"Sunday" => "Воскресенье",
"Sun" => "Вс",
"January" => "Января",
"Jan" => "Янв",
"February" => "Февраля",
"Feb" => "Фев",
"March" => "Марта",
"Mar" => "Мар",
"April" => "Апреля",
"Apr" => "Апр",
"May" => "Мая",
"May" => "Мая",
"June" => "Июня",
"Jun" => "Июн",
"July" => "Июля",
"Jul" => "Июл",
"August" => "Августа",
"Aug" => "Авг",
"September" => "Сентября",
"Sep" => "Сен",
"October" => "Октября",
"Oct" => "Окт",
"November" => "Ноября",
"Nov" => "Ноя",
"December" => "Декабря",
"Dec" => "Дек",
"st" => "ое",
"nd" => "ое",
"rd" => "е",
"th" => "ое"
);
return strtr($date, $translate);
}
}
+26
View File
@@ -0,0 +1,26 @@
<?php
/**
* Created by PhpStorm.
* User: andrey
* Date: 14.04.16
* Time: 18:33
*/
class Db{
public static function getConnection(){
$paramsPath = ROOT.'/config/db_params.php';
$params = include($paramsPath);
$dsn = "mysql:host={$params['host']};dbname={$params['dbname']}";
$db = new PDO($dsn, $params['user'], $params['password']);
$db->exec('SET NAMES utf8'); //задаём кодировку ввода/вывода БД
return $db;
}
}
?>
+28
View File
@@ -0,0 +1,28 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of Icecast
*
* @author adm_azashchepkin
*/
class Icecast {
public static function getConnection(){
$paramsPath = ROOT.'/config/icecast.php';
$params = include($paramsPath);
$radio = [];
$radio['host'] = $params['icecast_host']; // Сервер, на котором висит Icecast
$radio['ip'] = $params['icecast_ip']; // Сервер, на котором висит Icecast
$radio['port'] = $params['icecast_port']; // Порт
return $radio;
}
}
+49
View File
@@ -0,0 +1,49 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of Images
*
* @author adm_azashchepkin
*/
class Images {
//put your code here
public static function uploadImg(){
if (!copy($_FILES['img']['tmp_name'], ROOT.IMG_PRN.$_FILES['img']['name']))
echo 'Error upload image';
else
return IMG_PRN.$_FILES['img']['name'];
}
public static function updatePrintImg($id_prn, $link_img){
//формирование запроса и обновление данных в базе
$db = Db::getConnection();
//внесение денных об изменениях принтера в бд
$stmt = $db->prepare("UPDATE print set img=:img WHERE id = :id");
$stmt->bindParam(':id', $id_prn, PDO::PARAM_INT);
$stmt->bindParam(':img', $link_img);
return $stmt->execute();
}
public static function checkAndDeleteImg($id_prn){
$info_prn = Printer::getPrintByIDFullData($id_prn);
if(!$info_prn['img'] == ""){
$filename = $info_prn['img'];
rename(ROOT.$filename, ROOT.$filename."_old"); //переименование старого изображения
//unlink(ROOT.$filename); //удаление старого изображения
//echo $info_prn['img'];
//echo ROOT.$filename."old";
//var_dump($info_prn['img']);
return true;
}else return true;
}
}
+88
View File
@@ -0,0 +1,88 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of Ldap
*
* @author azashchepkin
*/
class Ldap {
/*
public function __construct() {
$this->ldaphost = LDAP_HOST;
$this->ldapport = LDAP_PORT;
$this->base = LDAP_BASE;
$this->filter = LDAP_FILTER;
$this->domain = LDAP_DOMAIN;
}*/
//put your code here
public static function LdapAuth($username, $pass){
$paramsPath = ROOT.'/config/ldap_config.php';
$params = include($paramsPath);
$login = $username.$params['ldap_domain'];
$password = $pass;
//подсоединяемся к LDAP серверу
$ldap = ldap_connect($params['ldap_host'], $params['ldap_port']) or die("Cant connect to LDAP Server");
//Включаем LDAP протокол версии 3
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
if ($ldap){
// Пытаемся войти в LDAP при помощи введенных логина и пароля
$bind = ldap_bind($ldap,$login,$password);
if ($bind)
{
// Проверим, является ли пользователь членом указанной группы.
$result = ldap_search($ldap,$params['ldap_base'],$params['ldap_filter'].$username);//"(||(memberOf=".$memberof.")(".$filter.$username."))"
// Получаем количество результатов предыдущей проверки
$result_ent = ldap_get_entries($ldap,$result);
//return $result_ent;
}
else
{
return ('Вы ввели неправильный логин или пароль. попробуйте еще раз<br /> <a href="index.php">Вернуться назад</a>');
}
}
// Если пользователь найден, то пропускаем его дальше и перебрасываем на main.php
if ($result_ent['count'] != 0)
{
$_SESSION['user_id'] = $username;
$_SESSION['name_en'] = $result_ent[0]['cn'][0];
$_SESSION['name'] = $result_ent[0]['extensionattribute1'][0];
$_SESSION['surname'] = $result_ent[0]['extensionattribute2'][0];
$_SESSION['middle_name'] = $result_ent[0]['extensionattribute3'][0];
$_SESSION['full_name'] = $result_ent[0]['extensionattribute4'][0];
$_SESSION['city'] = $result_ent[0]['l'][0];
$_SESSION['position'] = $result_ent[0]['title'][0];
$_SESSION['department'] = $result_ent[0]['extensionattribute7'][0];
$_SESSION['mail'] = $result_ent[0]['mail'][0];
$_SESSION['phone'] = $result_ent[0]['telephonenumber'][0];
$_SESSION['georol'] = $result_ent[0]['renaissancegeorole'][0];
$_SESSION['photo'] = $result_ent[0]['jpegphoto'][0];
/*Фото из ad
$photo = $result_ent[0]['jpegphoto'][0];
$img = imagecreatefromstring($photo);
header("Content-type: image/jpeg");
imagejpeg($img,NULL,100);
echo "<img src=/index.php />";
echo "<pre>";
var_dump($result_ent);
echo "</pre>";*/
//header('Location: main.php');
//exit;
}
else
{
die('К сожалению, вам доступ закрыт<br /> <a href="index.php">Вернуться назад</a>');
}
}
}
+170
View File
@@ -0,0 +1,170 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of Mail
*
* @author adm_azashchepkin
*/
class Mail {
//put your code here
public static function getOrderCartriges($list_print, $from){
//
$message = '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Заказ картриджей</title>
</head>
<body>
<p>Добрый день.<br />
КБ «Ренессанс Кредит» (ООО)<br />
Адрес: г. Курск, ул. Радищева 5.<br />
Необходимы картриджи для: </p>
<p>';
for($i=0; $i < count($list_print); $i++){
if($list_print[$i]['is_color'] == 1){
$message .= "".$list_print[$i]['model']." ".$list_print[$i]['unit']." (black) (2 шт.)<br />";
$message .= "".$list_print[$i]['model']." ".$list_print[$i]['unit']." (blue) (2 шт.)<br />";
$message .= "".$list_print[$i]['model']." ".$list_print[$i]['unit']." (yellow) (2 шт.)<br />";
$message .= "".$list_print[$i]['model']." ".$list_print[$i]['unit']." (magenta) (2 шт.)<br />";
}else $message .= "".$list_print[$i]['model']." ".$list_print[$i]['unit']." (2 шт.)<br />";
}
$message .= '</p><p>График работы: Пн-Пт. 9:00 - 18:00. <br />
Контактные номера: <br />
Захаренко Евгений <br />
+7 (495) 783-46-00 доб. 15015 <br />
Защепкин Андрей <br />
+7 (495) 783-46-00 доб. 15000 <br />
Галин Владислав <br />
+7 (495) 783-46-00 доб. 15025 </p>
';
$ord = self::getMail('Заказ картриджей', $message, $from);
(!$ord) ? $mess = "don't geting" : $mess = "OK";
return $mess;
}
private static function getMail($subject, $message, $from){
$paramsPath = ROOT.'/config/unit_information.php';
$params = include($paramsPath);
// отправка нескольким адресатам
$to = $params['email_support'] . ', '; // кому отправляем
//$to .= 'friend2@yourmail.ru' . ', '; // Внимание! Так пишем второй и тд адреса
// не забываем запятую. Даже в последнем контакте лишней не будет
// Для начинающих! $to .= точка в этом случае для Дописывания в переменную
// содержание письма
/*$subject = "Тема сообщения";
$message = '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Тема страницы</title>
</head>
<body>
<p>А здесь ваше сообщение</p>
</body>
</html>';*/
// устанавливаем тип сообщения Content-type, если хотим
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= "Content-type: text/html; charset=utf-8 \r\n";
// дополнительные данные
$headers .= "From: ".$from['name']." <".$from['email'].">\r\n"; // от кого
$headers .= "Cc: #ITKursk@rencredit.ru" . "\r\n"; // копия сообщения на этот адрес
//$headers .= "Bcc: yournick-archive@yourmail.ru\r\n"; // скрытая копия сообщения на этот
mail($to, $subject, $message, $headers);
}
public static function getLinkOrd($list_print){
$paramsPath = ROOT.'/config/unit_information.php';
$params = include($paramsPath);
// отправка нескольким адресатам
$to = $params['email_support']; // кому отправляем
$message = "КБ «Ренессанс Кредит» (ООО)%0aАдрес: г. Курск, ул. Радищева 5.%0aНеобходимы картриджи для:%0a%0a";
for($i=0; $i < count($list_print); $i++){
if($list_print[$i]['is_color'] == 1){
$message .= "".$list_print[$i]['model']." ".$list_print[$i]['unit']." (black) (2 шт.)%0a";
$message .= "".$list_print[$i]['model']." ".$list_print[$i]['unit']." (blue) (2 шт.)%0a";
$message .= "".$list_print[$i]['model']." ".$list_print[$i]['unit']." (yellow) (2 шт.)%0a";
$message .= "".$list_print[$i]['model']." ".$list_print[$i]['unit']." (magenta) (2 шт.)%0a";
}else $message .= "".$list_print[$i]['model']." ".$list_print[$i]['unit']." (2 шт.)%0a";
}
$message .= "%0aГрафик работы: Пн-Пт. 9:00 - 18:00.%0aКонтактные номера:%0aЗахаренко Евгений%0a+7 (495) 783-46-00 доб. 15015%0aЗащепкин Андрей%0a+7 (495) 783-46-00 доб. 15000%0aГалин Владислав%0a+7 (495) 783-46-00 доб. 15025";
$ord = self::getLinkMail("Заказ картриджей", $message, $to);
//(!$ord) ? $mess = "don't geting" : $mess = "OK";
return $ord;
}
public static function getRequests($print_id, $description){
$paramsPath = ROOT.'/config/unit_information.php';
$params = include($paramsPath);
$print = Printer::getPrintByID($print_id);
// отправка нескольким адресатам
$to = $params['email_support']; // кому отправляем
$message = "КБ «Ренессанс Кредит» (ООО)%0aАдрес: г. Курск, ул. Радищева 5.%0a%0a";
$message .= "Проблемы с принтером ".$print['model']." ".$print['unit'].". ".$description."%0a";
$message .= "%0aГрафик работы: Пн-Пт. 9:00 - 18:00.%0aКонтактные номера:%0aЗахаренко Евгений%0a+7 (495) 783-46-00 доб. 15015%0aЗащепкин Андрей%0a+7 (495) 783-46-00 доб. 15000%0aГалин Владислав%0a+7 (495) 783-46-00 доб. 15025";
$request = self::getLinkMail("Проблемы с принтером ".$print['model']." ".$print['unit'], $message, $to);
//(!$ord) ? $mess = "don't geting" : $mess = "OK";
return $request;
}
private static function getLinkMail($subject, $body, $to){
$subject = "?subject=".$subject;
$body = "&body=".$body;
$cc = "&cc=%23ITKursk%40rencredit.ru";
$link = "<a href='mailto:".$to.$subject.$body.$cc."'>Link</a>";
return $link;
}
}
/*array(13) {
["link"]=>
string(30) "http://prints.local/cartriges/"
["user_id"]=>
string(12) "azashchepkin"
["name_en"]=>
string(19) "Zashchepkin, Andrey"
["name"]=>
string(16) "Защепкин"
["surname"]=>
string(12) "Андрей"
["middle_name"]=>
string(26) "Александрович"
["full_name"]=>
string(56) "Защепкин Андрей Александрович"
["city"]=>
string(10) "Курск"
["position"]=>
string(62) "Специалист технической поддержки"
["department"]=>
string(60) "Отдел информационных технологий"
["mail"]=>
string(25) "azashchepkin@rencredit.ru"
["phone"]=>
string(5) "15000"
["georol"]=>
string(16) "GR.RC.Курск"
}*/
+196
View File
@@ -0,0 +1,196 @@
<?php
/*
* Класс для генерации постраничной навигации
*/
class Pagination
{
/**
*
* @var Ссылок навигации на страницу
*
*/
private $max = 10;
/**
*
* @var Ключ для GET, в который пишется номер страницы
*
*/
private $index = 'page';
/**
*
* @var Текущая страница
*
*/
private $current_page;
/**
*
* @var Общее количество записей
*
*/
private $total;
/**
*
* @var Записей на страницу
*
*/
private $limit;
/**
* Запуск необходимых данных для навигации
* @param integer $total - общее количество записей
* @param integer $limit - количество записей на страницу
*
* @return
*/
public function __construct($total, $currentPage, $limit, $index)
{
# Устанавливаем общее количество записей
$this->total = $total;
# Устанавливаем количество записей на страницу
$this->limit = $limit;
# Устанавливаем ключ в url
$this->index = $index;
# Устанавливаем количество страниц
$this->amount = $this->amount();
# Устанавливаем номер текущей страницы
$this->setCurrentPage($currentPage);
}
/**
* Для вывода ссылок
*
* @return HTML-код со ссылками навигации
*/
public function get()
{
# Для записи ссылок
$links = null;
# Получаем ограничения для цикла
$limits = $this->limits();
$html = '<ul class="pagination">';
# Генерируем ссылки
for ($page = $limits[0]; $page <= $limits[1]; $page++) {
# Если текущая это текущая страница, ссылки нет и добавляется класс active
if ($page == $this->current_page) {
$links .= '<li class="active"><a href="#">' . $page . '</a></li>';
} else {
# Иначе генерируем ссылку
$links .= $this->generateHtml($page);
}
}
# Если ссылки создались
if (!is_null($links)) {
# Если текущая страница не первая
if ($this->current_page > 1)
# Создаём ссылку "На первую"
$links = $this->generateHtml(1, '&lt;') . $links;
# Если текущая страница не первая
if ($this->current_page < $this->amount)
# Создаём ссылку "На последнюю"
$links .= $this->generateHtml($this->amount, '&gt;');
}
$html .= $links . '</ul>';
# Возвращаем html
return $html;
}
/**
* Для генерации HTML-кода ссылки
* @param integer $page - номер страницы
*
* @return
*/
private function generateHtml($page, $text = null)
{
# Если текст ссылки не указан
if (!$text)
# Указываем, что текст - цифра страницы
$text = $page;
$currentURI = rtrim($_SERVER['REQUEST_URI'], '/') . '/';
$currentURI = preg_replace('~/page-[0-9]+~', '', $currentURI);
# Формируем HTML код ссылки и возвращаем
return
'<li><a href="' . $currentURI . $this->index . $page . '">' . $text . '</a></li>';
}
/**
* Для получения, откуда стартовать
*
* @return массив с началом и концом отсчёта
*/
private function limits()
{
# Вычисляем ссылки слева (чтобы активная ссылка была посередине)
$left = $this->current_page - round($this->max / 2);
# Вычисляем начало отсчёта
$start = $left > 0 ? $left : 1;
# Если впереди есть как минимум $this->max страниц
if ($start + $this->max <= $this->amount)
# Назначаем конец цикла вперёд на $this->max страниц или просто на минимум
$end = $start > 1 ? $start + $this->max : $this->max;
else {
# Конец - общее количество страниц
$end = $this->amount;
# Начало - минус $this->max от конца
$start = $this->amount - $this->max > 0 ? $this->amount - $this->max : 1;
}
# Возвращаем
return
array($start, $end);
}
/**
* Для установки текущей страницы
*
* @return
*/
private function setCurrentPage($currentPage)
{
# Получаем номер страницы
$this->current_page = $currentPage;
# Если текущая страница боле нуля
if ($this->current_page > 0) {
# Если текунщая страница меньше общего количества страниц
if ($this->current_page > $this->amount)
# Устанавливаем страницу на последнюю
$this->current_page = $this->amount;
} else
# Устанавливаем страницу на первую
$this->current_page = 1;
}
/**
* Для получеия общего числа страниц
*
* @return число страниц
*/
private function amount()
{
# Делим и возвращаем
return round($this->total / $this->limit);
}
}
+70
View File
@@ -0,0 +1,70 @@
<?php
class Router{
private $routes;
public function __construct(){
$routerPath = ROOT.'/config/routes.php';
$this->routes = require($routerPath);
}
/*
* return request string
*/
private function getURI(){
if(!empty($_SERVER['REQUEST_URI'])){
return trim($_SERVER['REQUEST_URI'], '/');
}
}
public function run(){
//получить строку запроса
$uri = $this->getURI();
//проверить наличие запроса в routes.php
foreach($this->routes as $uriPattern => $path){
//сравниваем $urlPattern и $url
if(preg_match("~$uriPattern~", $uri)){
//получаем внутренний путь из внешнего согласно правилу
$internalRoute = preg_replace("~$uriPattern~", $path, $uri);
//определить контлоллер, экшен и параметры
$segments = explode('/', $internalRoute);
$controllerName = array_shift($segments).'Controller';
$controllerName = ucfirst($controllerName);
$actionName = 'action'.ucfirst(array_shift($segments));
$parameters = $segments;
//подключить файл класса контроллера
$controllerFile = ROOT.'/controllers/'.$controllerName.'.php';
if(file_exists($controllerFile)){
include_once ($controllerFile);
}
$controllerObject = new $controllerName;
if(!method_exists($controllerObject,$actionName)) {
$er = $uri;
require_once (ROOT . TMPL . 'error.php');
return true;
};
$result = call_user_func_array(array($controllerObject, $actionName),$parameters);
if($result != null){
break;
}
}
}
}
}
+13
View File
@@ -0,0 +1,13 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
return array(
'name'=>'Unit',
'email_support'=>'support@unit-org.ru', //support@unit-org.ru
'number'=>'8800'
);
+17
View File
@@ -0,0 +1,17 @@
<?php
/**
* Created by PhpStorm.
* User: andrey
* Date: 14.04.16
* Time: 18:57
*/
return array(
'host' => 'localhost',
'dbname' => 'db_prints',
'user' => 'mysql',
'password' => 'mysql',
);
// $db->exec('SET NAMES utf8'); //задаём кодировку ввода/вывода БД*/
?>
+12
View File
@@ -0,0 +1,12 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
return array(
'icecast_host' => 'dsk7681',
'icecast_ip' => '10.20.4.219',
'icecast_port' => '8000',
);
+15
View File
@@ -0,0 +1,15 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
return array(
'ldap_host' => 'LDAP_B7.RCCF.RU', //, LDAP_M1.RCCF.RU',
'ldap_port' => '389',
'ldap_base' => 'OU=Accounts, DC=rccf, DC=ru',
'ldap_filter' => 'sAMAccountName=',
'ldap_domain' => '@rccf.ru',
);
+70
View File
@@ -0,0 +1,70 @@
<?php
/**
* Created by PhpStorm.
* User: Andrey
* Date: 01.04.2016
* Time: 18:04
*/
return array(
'imgupload' => 'images/upload',
'user/login' => 'user/login',
'user/logout' => 'user/logout',
'printers' => 'printers/index',
'printer/add' => 'printers/add',
'printer/([0-9]+)' => 'printers/view/$1',
'printer/edit/([0-9]+)' => 'printers/edit/$1',
'cartriges/action' => 'cartriges/actions',
'cartriges/orders' => 'cartriges/orders',
'cartriges/reaction/([0-9]+)' => 'cartriges/reaction/$1',
'cartriges/add/public/([0-9]+)' => 'cartriges/public/$1',
'cartriges/add' => 'cartriges/add',
'cartriges/Zeroning' => 'cartriges/Zeroning',
'cartriges' => 'cartriges/index',
'phonebook/admactiv/([0-9]+)' => 'phonebook/activ/$1',
'phonebook/admsearch' => 'phonebook/admsearch',
'phonebook/admedit' => 'phonebook/edit',
'phonebook/admedit/([0-9]+)' => 'phonebook/edit/$1',
'phonebook/admdelete/([0-9]+)' => 'phonebook/delete/$1',
'phonebook/save' => 'phonebook/save',
'phonebook/update' => 'phonebook/update',
'phonebook/search' => 'phonebook/search',
'phonebook' => 'phonebook/index',
'unit/newactionrequest' => 'unit/newactionrequest',
'unit/actionrequest/([0-9]+)' => 'unit/actionrequest/$1',
'unit/actionrequest' => 'unit/actionrequest',
'unit/createrequest' => 'unit/createrequest',
'unit/requesttobase' => 'unit/requesttobase',
'unit/requests/page-([0-9]+)' => 'unit/index/$1',
'unit/requests' => 'unit/index',
'unit' => 'unit/index',
//'radio/statistics/([=0-9]+)' => 'radio/statistics',
//'radio/statistics/?_=([0-9]+)' => 'radio/statistics',
'radio/statistics' => 'radio/statistics',
'radio' => 'radio/index',
'' => 'site/index',
/*'product/([0-9]+)' => 'product/view/$1',
'catalog' => 'catalog/index',
'category/([0-9]+)/page-([0-9]+)' => 'catalog/category/$1/$2',
'category/([0-9]+)' => 'catalog/category/$1',
'cart/add/([0-9]+)' => 'cart/add/$1',
'cart/addAjax/([0-9]+)' => 'cart/addAjax/$1',
'cart' => 'cart/index',
'user/register' => 'user/register',
'user/login' => 'user/login',
'user/logout' => 'user/logout',
'cabinet/edit' => 'cabinet/edit',
'cabinet' => 'cabinet/index',
'contacts' => 'site/contact',
'news/([0-9]*)' => 'news/view',
'news' => 'news/index',
'articles' => 'articles/list',
'news/archive' => 'news/archive',
* 'news/([0-9]+)' => 'news/view/$1',
'news' => 'news/index', */
);
+144
View File
@@ -0,0 +1,144 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of cartriges
*
* @author adm_azashchepkin
*/
class CartrigesController {
//put your code here
public static $title = " Картриджи";
public function actionIndex(){ //главная страница раздела картриджей
$title = self::$title;
$summ_cart = Cartriges::getSumAllCarteiges();
if(isset($_POST['submit'])){
$messages = Cartriges::ActionCartriges($_POST, $_SESSION);
/*echo "<pre>";
print_r ($_POST);
print_r ($_SESSION['user_id']);
echo "</pre>";*/
}
require_once (ROOT . TMPL . 'cartriges.php');
return true;
}
public function actionActions(){ //действия с картриджами (доставка\замена)
if(!isset($_POST['submit'])) @$_SESSION['link'] = $_SERVER['HTTP_REFERER'];
$act_error = 0;
$action = $_GET['act'];
if(empty($action)) $act_error = 1;
$title = self::$title."| Действия";
//echo "hello user ".$action."-action";
$cartriges = Cartriges::getActivCartriges();
require_once (ROOT . TMPL . 'action_cartriges.php');
return true;
}
public static function actionAdd(){ //добавление картриджа
$title = self::$title."| Добавление";
if(isset($_POST['addcartrige'])){
echo "get add new cartrige in base";
(!Cartriges::addCartriges($_POST)) ? $messages = "Картридж добавлен" : $messages = "error";
$cartriges = Cartriges::getAllCartriges();
}
else{
$cartriges = Cartriges::getAllCartriges();
}
$cartrridges_history = Cartriges::getHistoryCartridges(9);
require_once (ROOT . TMPL . 'addcartrige.php');
return true;
}
public function actionPublic($id){
//self::checkAdmin();
$pub = Cartriges::changeIsPublic($id);
//var_dump($_SESSION);
//var_dump($_POST);
//var_dump($_FILES);
//var_dump($id);
if($pub){
header ('Location: '.DOMEN .'/cartriges/add');
}
}
public static function actionReaction($id){ //активация\деактивация картриджа
Cartriges::reactivCartriges($id);
return true;
}
public static function actionOrders(){ //заказ картриджей
$title = self::$title."| Заказ";
if(user::checkAdmin() == true){
$summ_cart = Cartriges::getSumAllCarteiges();
$cartriges = Cartriges::getActivCartriges();
if(isset($_POST['submit'])){
//show and running code for order
$list = Cartriges::orderCartriges($_POST);
$data_ord = json_encode($_POST);
/*$from = array(
'name'=>''.$_SESSION["full_name"].'',
'email'=>''.$_SESSION["mail"].'',
);*/
$a = Mail::getLinkOrd($list);
//echo $a;
/*echo "<pre>";
var_dump($_SESSION);
echo "</pre>";*/
}
$save = filter_input(INPUT_POST, 'save_order');
if(isset($save)){
$data = json_decode(filter_input(INPUT_POST, 'data'), true);
$saving = Unit::saveOrder($_SESSION["user_id"], $data);//добавить в базу заявок
//var_dump($create_action);
if(!$saving){
$message = "error";
}else {
$message = "ok";
//header("Location: ".$_SERVER['HTTP_REFERER']."");
}
}
}else{
$access = "Ошибка доступа";
}
require_once (ROOT . TMPL . 'cartriges_order.php');
return true;
}
public static function actionZeroning(){
Cartriges::resetToZero();
}
}
+101
View File
@@ -0,0 +1,101 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of ImagesController
*
* @author adm_azashchepkin
*/
class ImagesController {
//put your code here
public function actionUpload(){
$_SESSION['link'] = $_SERVER['HTTP_REFERER'];
if(isset($_POST['upload'])) {
$id_prn = $_POST['print_id'];
if(!Images::checkAndDeleteImg($id_prn)) echo "Ошибка загрузки изображения";// проверка наличия изображения у принтера и удаление из файловой системы
else{
$link_img = Images::uploadImg($_POST);
if($link_img == "Error upload image") echo "Ошибка загрузки изображения";
else{
if(!Images::updatePrintImg($id_prn, $link_img)) echo "Ошибка загрузки изображения";
else header("Location: ".$_SESSION['link']);
}
}
/*
echo "<pre>";
var_dump($_SESSION);
echo "<br />----------------------<br />";
var_dump($_POST);
echo "<br />----------------------<br />";
var_dump($_FILES);
echo "</pre>";
*
*
* array(13) {
["link"]=>
string(35) "http://prints.local/printer/edit/49"
["user_id"]=>
string(12) "azashchepkin"
["name_en"]=>
string(19) "Zashchepkin, Andrey"
["name"]=>
string(16) "Защепкин"
["surname"]=>
string(12) "Андрей"
["middle_name"]=>
string(26) "Александрович"
["full_name"]=>
string(56) "Защепкин Андрей Александрович"
["city"]=>
string(10) "Курск"
["position"]=>
string(62) "Специалист технической поддержки"
["department"]=>
string(60) "Отдел информационных технологий"
["mail"]=>
string(25) "azashchepkin@rencredit.ru"
["phone"]=>
string(5) "15000"
["georol"]=>
string(16) "GR.RC.Курск"
}
----------------------
array(2) {
["print_id"]=>
string(2) "49"
["upload"]=>
string(0) ""
}
----------------------
array(1) {
["img"]=>
array(5) {
["name"]=>
string(13) "error wfm.png"
["type"]=>
string(9) "image/png"
["tmp_name"]=>
string(39) "C:\OpenServer\userdata\temp\php5D63.tmp"
["error"]=>
int(0)
["size"]=>
int(50663)
}
}
*/
}
return true;
}
}
+155
View File
@@ -0,0 +1,155 @@
<?php
class PhonebookController{
public static $title = " Телефонный справочник";
public function actionIndex(){
$title = self::$title;
$list = Phonebook::gelAllPhoneList();
/*echo "<pre>";
var_dump($list);
echo "</pre>";*/
require_once (ROOT. TMPL. 'phonebook.php');
return true;
}
public function actionSearch(){
$title = self::$title . " | Поиск";
if(!empty($_POST)){
$searching = $_POST['searching'];
}
if(!empty($searching)){
$value = Phonebook::gerResultSearch($searching);
}
/*echo "<pre>";
var_dump($list);
echo "</pre>";*/
require_once (ROOT. TMPL. 'phonebook_search.php');
return true;
}
public function actionSave(){
Phonebook::getExcelList();
header("Location: ".$_SERVER['HTTP_REFERER']."");
}
public function actionUpdate(){
$data = $_POST;
$upd = Phonebook::save($data);
if(!empty($upd) || isset($upd['save'])){
if($upd){
header("Location: ".$_SERVER['HTTP_REFERER']."");
}else return false;
}
}
public function actionAdmsearch(){
$title = self::$title . " | Поиск adm";
$error = false;
if(user::checkAdmin() == true){
if(isset($_POST['submit']) || !empty($_POST['searching'])){
$searching = $_POST['searching'];
$list = Phonebook::gerResultSearch($searching, 1);
}else{
$list = Phonebook::gelAllPhoneList(0);
}
}else{
$error = "access denied";
}
$subardination = Phonebook::getSubordination();
$parents = Phonebook::getParents();
$departments = Phonebook::getDepatmnents();
require_once (ROOT. TMPL. 'phonebook_admsearch.php');
return true;
}
public function actionActiv($id){
if(user::checkAdmin() == true){
$pub = Phonebook::changeIsActiv($id);
//var_dump($_SESSION);
//var_dump($_POST);
//var_dump($_FILES);
//var_dump($id);
if($pub){
header ('Location: http://'.DOMEN .'/phonebook/admsearch');
}
}else $error = "access denied";
require_once (ROOT. TMPL. 'phonebook_admsearch.php');
return true;
}
public function actionAdd(){
if(user::checkAdmin() == true){
}else{
$error = "access denied";
}
require_once (ROOT. TMPL. 'phonebook_add.php');
return true;
}
public function actionEdit($id){
$title = self::$title . " | Редактирование";
$message = false;
if(user::checkAdmin() == true){
if(isset($_POST['save'])){
$update = Phonebook::save($_POST);
(!$update) ? $message = "Error" : $message = "Good";
}
$info = Phonebook::getElementByID($id);
$subardination = Phonebook::getSubordination();
$parents = Phonebook::getParents();
$departments = Phonebook::getDepatmnents();
}else{
$error = "access denied";
}
require_once (ROOT. TMPL. 'phonebook_edit.php');
return true;
}
public function actionDelete($id){
if(user::checkAdmin() == true){
}else{
$error = "access denied";
}
require_once (ROOT. TMPL. 'phonebook_del.php');
return true;
}
}
+159
View File
@@ -0,0 +1,159 @@
<?php
/**
* Created on 03.10.2016
* By NetBeans IDE 8.1
* Author: Andrey Zashchepkin
*
*
* ******** Contacts:*********
* my e-mails - yaslonane@yandex.ru
* - andrey@zashchepkin.ru
* - info@zashchepkin.ru
* my site zashchepkin.ru
* ******** end contacts *********
*
*
* Copyright zashchepkin.ru © 2016. All Rights Reserved.
* License https://opensource.org/licenses/mit-license.php MIT License (MIT)
*
*
* Description of PrintersController
*
* @author andrey
* */
class PrintersController {
//put your code here
public static $title = " Принтеры";
public function actionIndex(){
$title = self::$title;
$printList = Printer::getListPrinters();
if($printList == 0) $error = 1;
$floor = Printer::getAllFloors();
$department = Printer::getAllDepartments();
$cartrige = Printer::getAllCartriges();
$status = Printer::getAllStatuses();
require_once (ROOT. TMPL. 'printers.php');
/*echo "<pre>";
var_dump($status);
echo "</pre>";*/
return true;
}
public function actionAdd(){
$title = self::$title;
if(isset($_POST['submit'])){
//echo "save!!!";
//insert in base new printer and geting her id
//forvard in page edit/[id]
$id = Printer::insertPrint($_POST, true);
//echo $id;
header("Location: /printer/edit/".$id);
/*$upbd = printer::updatePrint($print['id'], $_POST);
$save = Printer::setHistoryChange($up, $print['id'], $_SESSION['user_id']);
if(!$upbd) $_SESSION['message'] = "Error";
else $_SESSION['message'] = "good";*/
}else{
$title = self::$title." | Добавление";
//$printList = Printer::getListPrinters();
//if($printList == 0) $error = 1;
$floor = Printer::getAllFloors();
$department = Printer::getAllDepartments();
$cartrige = Printer::getAllCartriges();
$status = Printer::getAllStatuses();
$functions = Printer::getAllFunctions();
require_once (ROOT. TMPL. 'add_prn.php');
/*echo "<pre>";
var_dump($status);
echo "</pre>";*/
return true;
}
}
public static function actionView($id){
$print = Printer::getPrintByID($id);
$title = self::$title." | ".$print['name'];
$history = Printer::getHistoryChangeByID($id);
require_once (ROOT. TMPL. 'info.php');
/*echo "<pre>";
var_dump($histiry);
echo "</pre>";*/
return true;
}
public static function actionEdit($id){
if(user::checkAdmin() == true){
$floor = Printer::getAllFloors();
$department = Printer::getAllDepartments();
$cartrige = Printer::getAllCartriges();
$status = Printer::getAllStatuses();
$functions = Printer::getAllFunctions();
$print = Printer::getPrintByIDFullData($id);
$title = self::$title." | Редактирование | ".$print['name'];
if(isset($_POST['submit'])){
/*echo "<pre>";
var_dump($print);
echo "</pre>";
echo "kek";
echo "<pre>";
var_dump($_POST);
echo "</pre>";*/
$up = printer::checkDataUpdatePrint($print, $_POST);
$upbd = printer::updatePrint($print['id'], $_POST);
$save = Printer::setHistoryChange($up, $print['id'], $_SESSION['user_id']);
if(!$upbd) $_SESSION['message'] = "Error";
else $_SESSION['message'] = "good";
}
/*if(isset($_POST['submitimg'])){
echo "<pre>";
var_dump($_SESSION);
echo "<br />----------------------<br />";
var_dump($_POST);
echo "</pre>";
}*/
$print = Printer::getPrintByIDFullData($id);
}else{
$access = "Ошибка доступа";
}
require_once (ROOT. TMPL. 'edit_print.php');
unset($_SESSION['message']);
return true;
}
}
+59
View File
@@ -0,0 +1,59 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of RadioController
*
* @author adm_azashchepkin
*/
class RadioController {
//put your code here
public static $title = " Радио";
public function actionIndex(){ //главная страница раздела картриджей
$title = self::$title;
$radioList = Radio::radioList();
$statistic = Radio::getStatistic();
/*echo "<pre>";
var_dump($statistic);
echo "</pre>";*/
//echo $this->host_ice .":". $this->port_ice;
require_once (ROOT . TMPL . 'radio.php');
return true;
}
public function actionStatistics(){
$statistic = Radio::getStatistic();
$string = "<table class='table'>
<tr>
<th>Название</th>
<th> Слушать </td>
<th>Слушателей<br>сейчас</th>
<th>Композиция</th>
</tr>";
for($i=0; count($statistic)>$i; $i++){
$string .= "<tr>";
$string .= "<td>".$statistic[$i]['stream']."</td>";
$string .="<td><a target=_blanc href='http://dsk7681:8000".$statistic[$i]['stream'].".m3u'><img border='0' width='24' src='http://dsk7681/frame/images/radio1.gif'></a></td>";
$string .="<td>".$statistic[$i]['quantity_listens']."</td>";
$string .="<td>".$statistic[$i]['title']."</td>";
$string .="</tr>";
}
$string .="</table>";
echo $string;
return true;
}
}
+85
View File
@@ -0,0 +1,85 @@
<?php
/*
*
*/
class SiteController{
/*
*
* вывод главной страницы
*
*/
public static $title = " Главная";
public function actionIndex(){
//$categories = array(); //инициализируем переменную для вывода списка категорий
//$categories = Category::getCategoriesList(); // вызываем метод получения массива категорий из модели категории
/* выводим дерево категорий
$x = new Category(); // вызываем класс
$a = $x->treeCategory(); // выбираем из базы список категорий и подкатегорий
$categories2 = category::create_tree($a, 0); // вызываем функцию и строим дерево
*
*/
//$latestProduct = array();
//$latestProduct = Product::getLatestProducts();
$title = self::$title;
$summ_cart = Cartriges::getSumAllCarteiges();
$printList = Printer::getRandPrint(3);
require_once(ROOT . TMPL .'index.php');
/*echo "Home<br>";
if(user::checkAuth() == false){
echo "Авторизуйтесь!!!";
}else{
echo "<img src='https://intranet.rencredit.ru/my/User%20Photos/Profile%20Pictures/".$_SESSION['user_id']."_LThumb.jpg' class='img-circle'/>";
echo "<pre>";
var_dump($_SESSION);
echo "</pre>";
echo "<a href='/user/logout'>Exit</a>";
}*/
return true;
}
public function actionContact(){
$userEmail = '';
$userText = '';
$result = false;
if(isset($_POST['submit'])){
$userEmail = $_POST['userEmail'];
$userText = $_POST['userText'];
$errors = false;
if(!user::checkEmail($userEmail)){
$errors[] = 'Not valid E-mail';
}
if($errors == false){
$adminEmail = 'yaslonane@yandex.ru';
$message = "Текст: {$userText}. От {$userEmail}";
$subject = 'subject mail TEST';
$result = mail($adminEmail, $subject, $message, "From: System message from zaa46.xyz <info@zaa46.xyz>"); /* {$userEmail} */
$result = true;
}
}
require (ROOT . TMPL . 'contact.php');
return true;
}
/*
* конец вывода главной страницы
*/
}
+139
View File
@@ -0,0 +1,139 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of UnitController
*
* @author adm_azashchepkin
*/
class UnitController {
//put your code here
public static $title = " Unit";
public function actionIndex($page = 1){
$title = self::$title . " | Список обращений";
$requests = Unit::getRequests($page);
$total = Unit::getTotalRequests();
$pagination = new Pagination($total, $page, Product::SHOW_BY_DEFAULT, 'page-');
/*echo "<pre>";
var_dump($requests);
echo "</pre>";*/
require_once (ROOT. TMPL. 'requests.php');
return true;
}
public function actionCreaterequest(){
$title = self::$title . " | Создание запроса";
$error = false;
$message = false;
if(user::checkAdmin() == true){
$printers = Printer::getListPrinters('all');
$create = filter_input(INPUT_POST,'create');
if(isset($create)){
$user_id = filter_input(INPUT_POST,'username');
$print_id = filter_input(INPUT_POST,'print_id');
$description = filter_input(INPUT_POST,'text');
$lnk = Mail::getRequests($print_id, $description);
}
$save = filter_input(INPUT_POST, 'save_request');
if(isset($save)){
$user = filter_input(INPUT_POST,'user_id');
$print = filter_input(INPUT_POST,'print_id');
$desc = filter_input(INPUT_POST,'description');
$saving = Unit::setRequest($user, $print, $desc);//добавить в базу заявок
$create_action = Unit::createNewAction($saving, 0, $user);
//var_dump($create_action);
if(!$saving){
$message = "error";
}else {
$message = "ok";
//header("Location: ".$_SERVER['HTTP_REFERER']."");
}
}
}else{
$error = "access denied";
}
require_once (ROOT. TMPL. 'create_request.php');
/*echo "<pre>";
var_dump($status);
echo "</pre>";*/
return true;
}
public function actionRequesttobase(){
//$printers = Printer::getListPrinters('all');
$save = filter_input(INPUT_POST, 'save_request');
if(isset($save)){
$user_id = filter_input(INPUT_POST,'user_id');
$print_id = filter_input(INPUT_POST,'print_id');
$description = filter_input(INPUT_POST,'description');
$saving = Unit::setRequest($user_id, $print_id, $description);//добавить в базу заявок
if(!$saving){
$message = "error";
}else {
$message = "ok";
header("Location: ".$_SERVER['HTTP_REFERER']."");
}
}
echo $message;
return true;
/*echo "<pre>";
var_dump($status);
echo "</pre>";*/
}
public function actionActionrequest($id = NULL){
$title = self::$title . " | Действия по обращению";
$error = "";
if(user::checkAdmin() == true){
//action if authorization is successful
if($id === NULL){
header("Location: http://".DOMEN."/unit/requests");
}else{
$list = Unit::getRequestByID($id);
$act = Unit::getAllActionByIDRequest($id);
}
}else{
$error = "access denied";
}
//require_once (ROOT. TMPL. 'create_request.php');
require_once (ROOT. TMPL. 'action_request.php');
return true;
}
public function actionNewactionrequest(){
$act = Unit::setNewActions();
$docs = filter_input(INPUT_POST, 'docs');
$request_id = filter_input(INPUT_POST, 'request_id');
$indoc = Unit::setNewDocs($act, $request_id, $docs);
if($indoc == true) header("Location: http://".DOMEN."/unit/actionrequest/".$request_id."");
//return true;
}
}
+97
View File
@@ -0,0 +1,97 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of UserController
*
* @author andrey
*/
class UserController {
//put your code here
//public static function actionIndex{
// }
/* public function actionRegister(){
$name = '';
$email = '';
$password = '';
$result = false;
if(isset($_POST['submit'])){
$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];
$errors = false;
if(!user::checkName($name)){
$errors[] = 'Warning!!! It\'s name short 2 elements';
}
if(!User::checkPassword($password)){
$errors[] = 'Warning!!! It\'s password short 6 elements';
}
if(!User::checkEmail($email)){
$errors[] = 'Warning!!! It\'s e-mail dont valid';
}
if(user::checkEmailExists($email)){
$errors[] = 'Sorry, this is e-mail is using';
}
if($errors == false){
$result = (user::register($name, $password, $email));
}
}
require_once (ROOT. TMPL. 'register.php');
return true;
}*/
public function actionLogin(){
if(!isset($_POST['submit'])) $_SESSION['link'] = $_SERVER['HTTP_REFERER'];
$username = '';
$password = '';
$errors = false;
if(isset($_POST['submit'])){
$username = $_POST['login'];
$password = $_POST['password'];
$errors = false;
$auth = Ldap::LdapAuth($username, $password);
header("location: ".$_SESSION['link']."");
}
require_once (ROOT . TMPL . 'login.php');
return true;
}
public function actionLogout(){
@session_start();
unset($_SESSION['user_id']);
unset($_SESSION['name']);
header("Location: ".$_SERVER['HTTP_REFERER']."");
session_destroy();
}
}
+21
View File
@@ -0,0 +1,21 @@
<IfModule mod_php4.c>
php_flag engine Off
</IfModule>
<IfModule mod_php5.c>
php_flag engine Off
</IfModule>
<IfModule mod_php6.c>
php_flag engine Off
</IfModule>
<IfModule mod_cgi.c>
Options -ExecCGI
</IfModule>
RemoveHandler .cgi .pl .py .pyc .pyo .phtml .php .php3 .php4 .php5 .php6 .pcgi .pcgi3 .pcgi4 .pcgi5 .pchi6 .inc
RemoveType .cgi .pl .py .pyc .pyo .phtml .php .php3 .php4 .php5 .php6 .pcgi .pcgi3 .pcgi4 .pcgi5 .pchi6 .inc
SetHandler None
SetHandler default-handler
# Remove both lines below if you want to render HTML files from the upload folder
AddType text/plain .html
AddType text/plain .htm
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

+575
View File
@@ -0,0 +1,575 @@
"11973";"Àáäðÿøèòîâà, Ãóëèÿ";"50857";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11901";"Àáðàøêèíà, Òàòüÿíà";"50887";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11983";"Àáðîñèìîâà, Îëüãà";"50308";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11922";"Àáðîñèìîâà, Òàòüÿíà";"50817";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"25167";"Àãååâà, Àíàñòàñèÿ";"50017";"Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"11979";"Àêæèãèòîâà, Èëüâèðà";"50030";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11321";"Àêìàëîâà, Íàâáàõîð";"50417";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"10857";"Àëåêñåâíèíà, Àííà";"50138";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11808";"Àëåêñååâà, Àë¸íà";"50483";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11265";"Àëåêñååíêî, Àëåêñåé";"50223";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11742";"Àëìàìåòîâà, Àëüáèíà";"50213";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"10322";"Àëôåðîâà, Ëþäìèëà";"50252";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11281";"Àëÿáüåâà, Êèðà";"50387";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"10011";"Àëÿáüåâà, Íàòàëüÿ";"50191";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11270";"Àë¸íêèíà, Åëåíà";"50051";"Loans+Card+Deposit+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"128";"Àíäðååâà, Þëèÿ";"50636";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11874";"Àíîñîâà, Þëèÿ";"50870";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11787";"Àíîõèíà, Ëþáîâü";"50833";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11891";"Àíòîíåö, Àëèíà";"50570";"Loans+Activation";"1012 CS Penza Platform";"1 Avaya CMS";
"11734";"Àíòîíîâà, Èðèíà";"50753";"Loans+Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"11238";"Àíòîíîâà, Íàòàëüÿ";"50185";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"10367";"Àíòîíîâà, Òàòüÿíà";"50289";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11438";"Àïàåâà, Äèàíà";"50500";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11730";"Àïîíàñåíêî, Åêàòåðèíà";"50295";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"10922";"Àðõèïîâà, Àëåíà";"50668";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11610";"Àñëàìîâà, Íàòàëüÿ";"50739";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11040";"Àôàíàñüåâà, Îëüãà";"50591";"Reception";"1011 CS Kursk Platform";"1 Avaya CMS";
"11918";"Àôèøèíà, Ìàðèíà";"50863";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11348";"Áàáèíà, Åêàòåðèíà";"50441";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"10968";"Áàáóðèíà, Êñåíèÿ";"50550";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"10924";"Áàêóíèíà, Ñâåòëàíà";"50666";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11649";"Áàëäèíà, Èðèíà";"50413";"Loans+Card+Activation+Metl.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"11027";"Áàðàíîâñêàÿ, Àííà";"50341";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"10892";"Áàðûøåâà, Àííà";"50421";"Loans+Card+Deposit+Clever";"1011 CS Kursk Platform";"1 Avaya CMS";
"195";"Áàòêàåâà, Ðåãèíà";"50610";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"10183";"Áàõëû÷¸âà, Åêàòåðèíà";"50182";"Loans+Card+Activation+Metl.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"11433";"Áåãëàðÿí, Íðàíå";"50371";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11819";"Áåçãèíà, Ñâåòëàíà";"50321";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11708";"Áåçúÿçûêàÿ, Èðèíà";"50055";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11690";"Áåêåòîâà, ßíà";"50127";"Loans+Card+Activation+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"11801";"Áåêÿí, Èííà";"50357";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"2091";"Áåëèê, Äàðüÿ";"50627";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11875";"Áåëûõ, Âàñèëèñà 0.5";"50571";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11842";"Áåëÿåâà, Àíæåëèêà";"50838";"Loans+Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"11944";"Áåëÿêîâà, Åêàòåðèíà";"50782";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11907";"Áåëÿíèíà, Íàòàëüÿ";"50892";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11613";"Áåðèäçå, Èâàí";"50683";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11867";"Áèðþêîâà, Èðèíà";"50871";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"10697";"Áîáðåøîâà, Ýëëà";"50053";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"10913";"Áîáðîâñêàÿ, Ìàðèíà";"50615";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"122";"Áîãàòûðåâ, Âèòàëèé";"50544";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"25225";"Áîãàòûðåâà, Åëåíà";"50354";"Loans+Card (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"11989";"Áîãà÷åâà, Îëüãà";"50194";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11854";"Áîäóð, Àëèíà 0.5";"50635";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11658";"Áîëäûðåâà, Ìàðèÿ";"50755";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"11966";"Áîíäàðåâà, Ñâåòëàíà";"50432";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11773";"Áîðèñîâà, Åëåíà";"50079";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11004";"Áîðèñîâà, Ìàðãàðèòà";"50715";"Expert Calls";"1013 CS Expert Platform";"";
"10";"Áîðîíèíà, Îëüãà";"50584";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"10114";"Áîñîëàåâà, Ñâåòëàíà";"50042";"Loans+Card+Deposit+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"25222";"Áîÿðêèíà, Ìàðèíà";"50367";"Loans+Card (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"11442";"Áðîäÿãèíà, Âèêòîðèÿ 0.75";"50429";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"25229";"Áóçåíêîâà, Ìàðèíà";"50362";"Loans+Card (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"11920";"Áóêðååâà, Åëåíà 0.75";"50804";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"10057";"Áóêðååâà, Þëèÿ";"50109";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11876";"Áóëãàêîâ, Âèòàëèé";"50869";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"10993";"Áóòóñîâ, Íèêîëàé";"50527";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"8014";"Áûêîâà, Íàòàëüÿ";"54037";"Loans CA Help CC";"8001 CA Penza";"1 Avaya CMS";
"11148";"Âàâèëîâà, Òàòüÿíà";"50199";"Loans+Card+Activation+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"11294";"Âàëèóëèíà, Ìàðèÿ";"50397";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11393";"Âàëü÷óê, Âèêòîðèÿ";"50065";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"10300";"Âàñèíà, Îëüãà";"50166";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"2108";"Âàñÿêèíà, Îëüãà";"50533";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11933";"Âàõðóøåâà, Àëåíà";"50279";"Presell+Outsource";"";"1 Avaya CMS";
"10751";"Âåíþêîâà, Ñâåòëàíà";"50257";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11955";"Âèíîãðàäîâà, Åëèçàâåòà";"50153";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"14";"Âèðÿñîâà, Àíàñòàñèÿ";"50608";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11976";"Âèøíÿêîâà, Ëþáîâü";"50038";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"10252";"Âëàñîâà, Òàòüÿíà";"50003";"Loans+Card+Deposit+Activ.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"10075";"Âîëêîâà, Òàòüÿíà Exp.";"50130";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11910";"Âîëêîâà, Òàòüÿíà";"50549";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11080";"Âîëîáóåâ, Àðñåíèé";"50270";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"10337";"Âîëîáóåâà, Àííà";"50091";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11288";"Âîëîâèêîâà, Âåðà";"50395";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"10241";"Âîëîøèíà, Êàðèíý";"50176";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11464";"Âîëüíèêîâà, Ìàðèíà";"50360";"Loans+Card+Activation+Metl.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"11864";"Âîðîíîâà, Àëåíà";"50864";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"25228";"Âûäðèí, Âëàäèñëàâ";"50391";"Loans+Card (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"11930";"Âûõðèñòþê, Ìàðèÿ";"50747";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"10994";"Ãàáåäàâà, Ìàéÿ";"50556";"Loans+Card+Activation+Metlife";"1012 CS Penza Platform";"1 Avaya CMS";
"10316";"Ãàëóøêà, Îëåñÿ";"50243";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"25212";"Ãàëóøêèíà, Ñâåòëàíà";"50425";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11219";"Ãàíèíà, Òàòüÿíà";"50312";"Loans+Card+Activation+Metl.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"10049";"Ãåéêî, Òàòüÿíà";"50867";"Loans+Card+Deposit+Clever";"1011 CS Kursk Platform";"1 Avaya CMS";
"11400";"Ãåðàñåâà, Åêàòåðèíà";"50073";"Loans+Card+Presell (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"25199";"Ãëàçêîâà, Ìàðèÿ";"50349";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"10325";"Ãëåáîâà, Àëåíà";"50256";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"10973";"Ãëåáîâñêîâ, Àíäðåé";"50602";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11857";"Ãëóõîâà, Âèêòîðèÿ";"50849";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"11082";"Ãëóùåíêî, Äìèòðèé";"50035";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"10215";"Ãîëîâà, Ïîëèíà";"50152";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11399";"Ãîëîâàíîâà, Ôåðóçà";"50224";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"18";"Ãîëîâèíà, Òàòüÿíà";"50537";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11347";"Ãîëîëîáîâà, Þëèÿ";"50439";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11844";"Ãîëîïÿòîâà, Èðèíà";"50805";"Loans+Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"11418";"Ãðàíêèíà, Îëüãà";"50254";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"10297";"Ãðèäèíà, Íàòàëèÿ";"50209";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11605";"Ãðîìîâ, Íèêîëàé 0.75";"50642";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"10699";"Ãðóäèíêèí, Äìèòðèé";"50498";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"10261";"Ãðóäêèíà, Òàòüÿíà";"50234";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11623";"Ãðóøèíà, Êàðèíà";"50119";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11481";"Ãðûçóíêîâà, Ñâåòëàíà";"50649";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"10978";"Ãóäàíîâà, Ðèììà";"50286";"Loans+Card+Deposit+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"10303";"Ãóëåâñêàÿ, Âèêòîðèÿ";"50136";"Expert Public";"1013 CS Expert Platform";"1 Avaya CMS";
"11932";"Ãóíäîðîâà, Èðèíà";"50446";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"164";"Ãóñàðîâà, Åëåíà";"50542";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11429";"Ãóñüêîâà, Íàòàëüÿ";"50244";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"20";"Äàö, Èðèíà";"50613";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"10347";"Äàøêèíà, Àëñó";"50272";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11940";"Äåáåðäååâà, Âàñèëÿ";"50227";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"20256";"Äåáåðäååâà, Ãóçåëü";"50573";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11688";"Äåâÿòêèíà, Íàòàëüÿ";"50779";"Loans+Card+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"11670";"Äåì÷åíêî, Êðèñòèíà";"50764";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"10988";"Äåíèñîâà, Èíãà";"50488";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"23";"Äåíèñîâà, Ìàðèÿ";"50545";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11816";"Äæîðàåâà, Ìàðèíà";"50302";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"10014";"Äèâàâèíà, Àíæåëà";"50010";"Loans+Card+Deposit+Activ.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11614";"Äìèòðåíêî, Åëåíà";"50671";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"11330";"Äìèòðèåâà, Þëèÿ";"50430";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"10692";"Äîáðûíèíà, Äàðüÿ";"50048";"Loans+Card+Deposit+Activ.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"11958";"Äîêàøåíêî, Íàòàëüÿ";"50365";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11783";"Äîëãàíîâà, Äàðüÿ";"50823";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"";
"11413";"Äîëãàøîâà, Îëüãà";"50496";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11701";"Äîëæåíêî, Åêàòåðèíà";"50788";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11807";"Äîëæåíêîâà, Íàòàëüÿ";"50465";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11631";"Äîðîôååâ, Âëàäèìèð";"50008";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"10053";"Äðîáûøåâà, Åâãåíèÿ";"50067";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"25227";"Äðóæèíèí, Äìèòðèé";"50386";"Loans+Card (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"11676";"Äðóæèíèíà, Ìàðèÿ";"50767";"Loans";"1012 CS Penza Platform";"";
"25181";"Äðóæèíèíà, Ñâåòëàíà";"50251";"Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"11405";"Äóáèíà, Èëüìèðà";"50331";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11401";"Äóâàëêèíà, Îëüãà";"50122";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"10223";"Äóäàíîâà, Ñâåòëàíà";"50049";"Loans+Card+Deposit+Activ.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"11525";"Äóäíèêîâà, Ñâåòëàíà";"50020";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"26";"Äóí÷åâà, Îêñàíà";"50625";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11988";"Äóðíåâà, Íàòàëüÿ";"50114";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11709";"Äûìóðà, Àííà";"50478";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"2041";"Äÿòëîâà, Îëüãà";"50009";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11902";"Åãîðîâ, Ñòàíèñëàâ";"50738";"Presell+Out+Outsource";"1015 CS Cross Out";"";
"27";"Åãîðîâà, Ìàðãàðèòà";"50581";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"10025";"Åëàãèíà, Êðèñòèíà";"50029";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"11878";"Åëüíèêîâà, Êðèñòèíà";"50879";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"68";"Åíèêååâà, Àíòîíèíà";"50621";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11993";"Åíèêååâà, Þëèÿ";"50477";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"29";"Åðåìèíà, Þëèÿ";"50543";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11941";"Åðìîøèí, Ìèõàèë";"50359";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"10026";"Åôàíîâà, Êñåíèÿ";"50898";"Expert Public";"1013 CS Expert Platform";"1 Avaya CMS";
"30";"Åôðåìîâà, Èííà";"50603";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11176";"Åùèíà, Ýëèíà";"50041";"Loans+Card+Activation+Metl.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"11444";"Æàðêîâà, Ýëüâèðà";"50477";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"10820";"Æàòêèíà, Íàäåæäà";"50617";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"10017";"Æåëåçíÿêîâà, Âàðâàðà";"50189";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"11782";"Æåëóäêîâà, Àíàñòàñèÿ";"50487";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11950";"Æèãà÷åâ, Àíòîí";"50021";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11889";"Æèäêîâà, Îêñàíà";"50389";"Loans+Activation";"1012 CS Penza Platform";"1 Avaya CMS";
"11753";"Æèíêî, Åëåíà";"50812";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11840";"Æèðîâà, Àííà";"50131";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11663";"Æìàêèíà, Ñîôüÿ";"50763";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"11616";"Æóêîâà, Àíàñòàñèÿ";"50454";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"32";"Æóêîâà, Îëüãà";"50623";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11625";"Æóëèíà, Íàòàëüÿ";"50052";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11866";"Æóðàâëåâà, Êðèñòèíà";"50862";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"11407";"Çàáêîâà, Äàðüÿ";"50085";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11776";"Çàâîä÷èêîâà, Àíàñòàñèÿ";"50348";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11722";"Çàâîëîêà, Äàðüÿ";"50792";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11904";"Çàãðåáèíà, Àëåêñàíäðà";"50748";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11936";"Çàéöåâà, Ëèäèÿ";"50785";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"10877";"Çàéöåâà, Îëüãà";"50237";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"2053";"Çàëÿëóòäèíîâà, Ìàðãàðèòà";"50096";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"10894";"Çàõàðîâà, Òàòüÿíà";"50654";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11828";"Çâÿãèíà, Îëüãà";"50340";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11899";"Çâÿãèíöåâà, Àíàñòàñèÿ";"50381";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11345";"Çäåñåâ, Àëåêñàíäð";"50436";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11355";"Çèíîâüåâà, Ìàðèíà";"50247";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"10878";"Çëîáèíà, Èðèíà";"50356";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11013";"Çîëîòóõèíà, Èðèíà";"50710";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"11923";"Çóáêîâà, Àíàñòàñèÿ 0.5";"50241";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11364";"Çóåâà, Àëèíà";"50464";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11772";"Çÿáëèêîâ, Äìèòðèé";"50319";"Loans+Card+Presell (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"11952";"Çÿáëèöåâà, Ìàðèÿ";"50416";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"10029";"Èâàíîâà, Àíàñòàñèÿ 0.5";"50378";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11916";"Èâàíîâà, Íàäåæäà";"50890";"Presell+Out";"1015 CS Cross Out";"";
"11954";"Èâàí÷èõèíà, Àíàñòàñèÿ";"50339";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11823";"Èçîòîâà, Àëåêñàíäðà";"50780";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"10919";"Èçîòîâà, Òàòüÿíà";"50672";"Loans+Card+Deposit+Clever";"1011 CS Kursk Platform";"1 Avaya CMS";
"2044";"Èçþìèí, Íèêîëàé";"50555";"Presell+Out";"1015 CS Cross Out";"";
"11596";"Èçþìèíà, Êñåíèÿ";"50512";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11555";"Èëüåíêî, Àíàñòàñèÿ";"50698";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11617";"Èñàåâà, Þëèÿ";"50643";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11762";"Êàáàíîâà, Êðèñòèíà";"50712";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11648";"Êàáîñêèíà, Ãàëèíà";"50390";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"11759";"Êàäêèíà, Íàäåæäà";"50802";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11978";"Êàëèíèíà, Þëèÿ";"50326";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11880";"Êàëèíè÷åíêî, Âëàäèñëàâ";"50868";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11725";"Êàëèòóðèíà, Åëåíà";"50490";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11956";"Êàëìûêîâà, Åâãåíèÿ";"50410";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"25165";"Êàëóãèíà, Îëüãà";"50162";"Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"11635";"Êàëü÷åíêî, Åêàòåðèíà";"50742";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"179";"Êàëÿêèíà, Âàëåðèÿ";"50565";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11590";"Êàìåíåâà, Êñåíèÿ";"50076";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"38";"Êàïóñòèíà, Ñâåòëàíà";"50592";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11313";"Êàðà÷åâöåâà, Àëåêñàíäðà";"50174";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11850";"Êàñüÿíîâà, Åâãåíèÿ";"50850";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"20630";"Êà÷íîâà, Îëüãà";"50601";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"25226";"Êà÷óðèíà, Ñâåòëàíà";"50383";"Loans+Card (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"11656";"Êàùååâà, Ìàðèíà";"50681";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"10982";"Êåðæåíîâà, Ãàëèÿ";"50756";"Loans+Card+Activation+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"10189";"Êèïóðîâà, Èðèíà";"50201";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"10100";"Êèðååâà, Åêàòåðèíà";"50039";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11626";"Êèñåëåâà, Âåðîíèêà";"50447";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11490";"Êèñåëåâà, Íàòàëèÿ";"50140";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11892";"Êèñåëåâà, Þëèÿ";"50467";"Loans+Activation";"1012 CS Penza Platform";"1 Avaya CMS";
"11799";"Êèñòèíà, Åëèçàâåòà";"50342";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11049";"Êëèìîâà, Èðèíà";"50123";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"8028";"Êëþ÷íèêîâà, Òàòüÿíà";"54050";"Loans CA Help CC";"8001 CA Penza";"1 Avaya CMS";
"11445";"Êëþøèíà, Ìàðèíà 0.75";"50379";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"10781";"Êíÿçåâ, Äìèòðèé";"50472";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11505";"Êîáû÷åâà, Åëåíà";"50656";"Loans+Card+Activation+Metl.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"11789";"Êîâòóí, Îêñàíà 0.75";"50831";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"11912";"Êîâøîâà, Åêàòåðèíà";"50679";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11491";"Êîãóò, Íàòàëüÿ";"50143";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"2140";"Êîäîðêèíà, Þëèÿ";"50648";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11604";"Êîäîðîâà, Âèêòîðèÿ 0.5";"50735";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11746";"Êîæèí, Àíäðåé";"50664";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"11034";"Êîçëîâ, Àëåêñàíäð";"50154";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"11217";"Êîçëîâ, Ñåðãåé";"50299";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"2055";"Êîçëîâà, Àëåñÿ";"50547";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"10971";"Êîçëîâöåâà, Åëåíà";"50538";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11446";"Êîçíîâà, Ëþáîâü";"";"";"1012 CS Penza Platform";"";
"11898";"Êîçüìåíêî, Âàëåðèÿ 0.5";"50327";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"44";"Êîêîðåâà, Þëèÿ";"50588";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11577";"Êîëåñíèêîâà, Åëåíà";"50734";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11547";"Êîëåñíèêîâà, Êñåíèÿ";"50523";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"2006";"Êîëîòèëîâà, Ìàðèÿ";"50535";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11609";"Êîìàðèöêèõ, Òàòüÿíà";"50737";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11964";"Êîíäðàòüåâà, Ñâåòëàíà";"50514";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11846";"Êîííîâà, Êðèñòèíà 0.5";"50661";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11414";"Êîíîâàëîâà, Íàòàëèÿ";"50236";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"46";"Êîíîâàëîâà, Ýëüçèðà";"50536";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11924";"Êîíüêîâà, Òàòüÿíà";"50276";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11990";"Êîðæåíåâñêàÿ, Ìàðèÿ";"50139";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11685";"Êîðíàóõîâà, Íàäåæäà";"50774";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"25162";"Êîðíåâ, Àëåêñåé";"50229";"Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"11939";"Êîðíåé÷óê, Àëåêñåé";"50240";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11081";"Êîðîëåâà, Þëèÿ";"50207";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11619";"Êîðîñòåëåâà, Îêñàíà";"50693";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"11314";"Êîðîòååâà, Þëèÿ";"50214";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"10033";"Êîð÷àãèíà, Êðèñòèíà";"50278";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11126";"Êîñèíîâà, Èðèíà";"50026";"Reception";"1011 CS Kursk Platform";"1 Avaya CMS";
"10995";"Êîñòèíà, Àëåâòèíà";"50557";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11913";"Êîñòèíà, Ñâåòëàíà";"50882";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11447";"Êîñûðåâà, Íàäåæäà";"50499";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11362";"Êîòåíêî, Èííà";"50455";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"10070";"Êðàéíîâà, Îëüãà";"50077";"Loans+Card+Deposit+Clever";"1011 CS Kursk Platform";"1 Avaya CMS";
"11906";"Êðàìèí, Êîíñòàíòèí";"50883";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"25178";"Êðàñíèêîâà, Àíàñòàñèÿ";"50232";"Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"11879";"Êðàñíèêîâà, Åëåíà";"50459";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11162";"Êðåòóøåâà, Àííà";"50197";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11298";"Êðèâîøåèíà, Åëåíà";"50407";"Loans+Card+Activation+Metl.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"25065";"Êóâàéöåâà, Èðèíà";"50539";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"10885";"Êóäèíîâà, Þëèÿ";"50576";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11607";"Êóäðÿøîâ, Ìàêñèì 0.5";"50680";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11957";"Êóçèíà, Èðèíà";"50440";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"244";"Êóçíåöîâ, Àëåêñàíäð";"50106";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"10357";"Êóçíåöîâà, Àííà";"50281";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"49";"Êóçíåöîâà, Ãàëèíà";"50566";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11540";"Êóçíåöîâà, Åëåíà";"50685";"Loans+Card+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"10983";"Êóçíåöîâà, Æàííà";"50701";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11371";"Êóçíåöîâà, Ëþáîâü";"50363";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11017";"Êóçíåöîâà, Îëüãà";"50720";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"11747";"Êóçíåöîâà, ßíà 0.9";"50796";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"10292";"Êóçüìèíà, Åêàòåðèíà";"50186";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"25148";"Êóçüìè÷åâà, Íàòàëüÿ";"50815";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"10608";"Êóëèêîâà, Åêàòåðèíà";"50444";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"25166";"Êóðêîâà, Ãàëèíà";"50148";"Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"10445";"Êóðÿåâà, Ãóçåëü";"50382";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11818";"Ëàïåíêîâà, Ëþäìèëà";"50696";"Loans+Card";"1011 CS Kursk Platform";"";
"11271";"Ëàñòóðèíà, Åêàòåðèíà 0.75";"50101";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11986";"Ëåáåäåâà, Àíãåëèíà";"50203";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11822";"Ëåîíîâà, Þëèÿ";"50765";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"10779";"Ëåïèíà, Îëüãà";"50206";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"10018";"Ëèòâèíîâà, Ìàðèíà";"50121";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"10027";"Ëèòâèíîâà, Íàòàëèÿ";"50309";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11244";"Ëîçîâñêàÿ, Òàòüÿíà";"50061";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11960";"Ëîìàíîâè÷, Îëüãà";"50163";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"54";"Ëîìà÷åâà, Àëåíà";"50604";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11718";"Ëóáèíåö, Ýëüâèðà";"50217";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"2033";"Ëóêüÿíîâà, Íàòàëüÿ";"50525";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"2048";"Ëóêüÿíîâà, Îëüãà";"50634";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11127";"Ëóíåâà, Êñåíèÿ";"50033";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"2045";"Ëóòêîâà, Íàòàëüÿ";"50013";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11761";"Ëþáàâèíà, Îëüãà";"50358";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11628";"Ëÿãèíà, Ìàðèÿ";"50088";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11863";"Ìàçèíà, Íàòàëüÿ";"50861";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"8043";"Ìàçûêèíà, Àëåíà";"54064";"Loans CA Help CC";"8001 CA Penza";"1 Avaya CMS";
"11909";"Ìàêàéäà, Äàðüÿ";"50777";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11689";"Ìàêàðîâà, Ëþäìèëà";"50486";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"25152";"Ìàëàøåâè÷, Îêñàíà";"50196";"Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"57";"Ìàëèíèíà, Êðèñòèíà";"50574";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"25232";"Ìàëêîâà, Äàðüÿ";"50370";"Loans+Card (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"10305";"Ìàëüêîâà, Åëåíà";"50031";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11404";"Ìàëü÷èêîâà, Îëüãà";"50159";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"59";"Ìàðêîâà, Þëèÿ";"50593";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"2037";"Ìàðòûíîâà, Èííà";"50025";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"176";"Ìàñëîâà, Ãàëèíà";"50630";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11791";"Ìàñòÿíèíà, Îëüãà";"50485";"Loans+Card+Activation+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"10343";"Ìàòåóø, Ìàðãàðèòà";"50268";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11853";"Ìàòêóðáàíîâà, Çîÿ";"50855";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11068";"Ìàòîðèíà, Åëåíà";"50142";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11078";"Ìàòðîñîâà, Ìàðèÿ";"50195";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"2035";"Ìà÷àëîâà, Ëþáîâü";"50628";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"25169";"Ìàøêèí, Ìàêñèì";"50248";"Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"10193";"Ìàþðîâà, Åêàòåðèíà";"50205";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11974";"Ìàþðîâà, Êðèñòèíà";"50027";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"25186";"Ìåäâåäåâà, Äàðüÿ";"50293";"Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"42";"Ìåäâåäåâà, Åêàòåðèíà";"50521";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11949";"Ìåçåíöåâà, Þëèÿ";"50806";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11726";"Ìåëüíèêîâà, Åëåíà";"50730";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"10705";"Ìåíüøîâà, Ëþäìèëà";"50516";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11729";"Ìåðçëÿêîâ, Àëåêñàíäð";"50629";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"11745";"Ìåðêóëîâà, Äèàíà";"50726";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11926";"Ìåùåðÿêîâà, Åëåíà";"50893";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11790";"Ìåùåðÿêîâà, Íàòàëüÿ";"50834";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11012";"Ìèëîñòíàÿ, Èðèíà";"50709";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"61";"Ìèëÿéêèíà, Åêàòåðèíà";"50579";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11652";"Ìèíàñÿí, Êðèñòèíà";"50517";"Loans+Card+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"152";"Ìèíååâà, Îëüãà";"50564";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11826";"Ìèðîíîâ, Èãîðü 0.5";"50423";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11291";"Ìèðîíîâà, Îëüãà";"50393";"Loans+Presell";"1011 CS Kursk Platform";"1 Avaya CMS";
"10006";"Ìèõàéëîâà, Íàòàëüÿ";"50754";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"10032";"Ìèõàéëîâà, Îëåñÿ";"50037";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"25188";"Ìèøèíà, Îëüãà";"50322";"Loans+Card (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"11128";"Ìîâñóìîâà, Âèêòîðèÿ";"50068";"Loans+Card+Deposit+Clever";"1011 CS Kursk Platform";"1 Avaya CMS";
"11496";"Ìîèñååâà, Þëèÿ";"50366";"Loans+Card+Deposit+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"11502";"Ìîêøàíîâ, Èëüÿ";"50374";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"11862";"Ìîðîçîâà, Åêàòåðèíà";"50427";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"11764";"Ìîðîçîâà, Èðèíà";"50700";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11512";"Ìîðîçîâà, Þëèÿ";"50510";"Loans+Card+Clever";"1011 CS Kursk Platform";"1 Avaya CMS";
"11678";"Ìóõàìåòäæàíîâà, Òàòüÿíà";"50647";"Loans+Card+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"11965";"Ìÿñíèêîâà, Êñåíèÿ";"50814";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11385";"Íàçàðîâà, Âèêòîðèÿ";"50258";"Loans+Card+Activation+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"11784";"Íàìàêîíîâà, Ìàðèÿ";"50827";"Loans+Card+Presell (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"11308";"Íàñîíîâà, Åëåíà";"50411";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11039";"Íàóìêèíà, Òàòüÿíà";"50294";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11971";"Íåâëþòîâà, Èëüìèðà";"50046";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"25231";"Íåñÿåâà, Àííà";"50392";"Loans+Card (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"2142";"Íèêèòèí, Àíòîí";"50600";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11591";"Íèêèôîðîâà, Îêñàíà";"50094";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"25185";"Íèêîëàåâà, Åâãåíèÿ";"50125";"Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"11280";"Íèêîëàåâà, Ñâåòëàíà";"50385";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11970";"Íèêóëèíà, Þëèÿ";"50851";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11315";"Íîñîâà, Çîÿ";"50415";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11682";"Íîñîâà, Íàòàëüÿ";"50776";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"10970";"Íîõðèíà, Þëèÿ";"50519";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11881";"Îáîæàåâà, Ìàðèÿ";"50865";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"10675";"Îâñÿííèêîâà, Åêàòåðèíà";"50481";"Expert Public";"1013 CS Expert Platform";"1 Avaya CMS";
"11184";"Îëåéíèê, Èðèíà";"50178";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11406";"Îðåøêèíà, Åêàòåðèíà";"50494";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"73";"Îñèíà, Òàòüÿíà";"50546";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11474";"Ïàðàìîíîâà, Ìàðèÿ";"50598";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"2147";"Ïàòêèí, Äàíèëà";"50158";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11201";"Ïàùåíêî, Àíäðåé";"50280";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11116";"Ïàùåíêî, Åâãåíèé";"50301";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11972";"Ïåðåêîñîâà, Åêàòåðèíà";"50854";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11293";"Ïåòåëèí, Êîíñòàíòèí";"50401";"Loans+Card+Activation+Metl.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"10760";"Ïåòðîâà, Èðèíà";"50561";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11684";"Ïåøêîâ, Èëüÿ";"50736";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"20623";"Ïèâêèíà, Åëåíà";"50614";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"2004";"Ïèãëîâà, Þëèÿ";"50554";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"25200";"Ïèëèïåö, ßíà";"50338";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"20608";"Ïîäúÿ÷åâà, ßíà 0.75";"50522";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"25220";"Ïîäûáàéëî, Äàðüÿ";"50456";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"25214";"Ïîæèäàåâà, Ñâåòëàíà";"50451";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11882";"Ïîçäíÿêîâ, Äìèòðèé";"50877";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11398";"Ïîçäíÿ÷êèíà, Ìàðèíà";"50002";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"10028";"Ïîëåæàåâà, Êðèñòèíà";"50198";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"25171";"Ïîëèâàíîâà, Åëåíà";"50269";"Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"11813";"Ïîëèîíîâà, Àëåíà";"50719";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"25172";"Ïîëóõèíà, Äèàíà";"50245";"Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"174";"Ïîëÿêîâà, Êðèñòèíà";"50548";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11283";"Ïîëÿêîâà, Ñâåòëàíà";"50620";"Expert Public";"1013 CS Expert Platform";"1 Avaya CMS";
"25216";"Ïîëÿêîâà, ßíà";"50424";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"25221";"Ïîïåíêî, Åâãåíèÿ";"50722";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11639";"Ïîïîâà, Ìàðèíà 0.75";"50260";"Loans+Card+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"11943";"Ïîïîâà, Ìàðèÿ";"50722";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11968";"Ïîïîâà, Òàòüÿíà";"50515";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11070";"Ïîïîâà, Þëèÿ";"50155";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"10034";"Ïîïóãàåâà, Îëüãà";"50768";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11359";"Ïîðøíåâà, Íàòàëüÿ";"50250";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11934";"Ïðåñíÿêîâà, Êðèñòèíà 0.75";"50056";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11424";"Ïðèãîäà, Íàäåæäà";"50263";"Loans+Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"25198";"Ïðèëåïêî, Ìàðèíà";"50343";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11323";"Ïðèñÿæíàÿ, Àíàñòàñèÿ";"50419";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"80";"Ïðîíèíà, Èðèíà";"50637";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11817";"Ïðîíèíà, Ìàðèÿ";"50528";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"10021";"Ïðîíèíà, Íèíà";"50445";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"10702";"Ïðîíñêàÿ, Þëèÿ";"50502";"Loans+Card+Deposit+Activ.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11975";"Ïðîíüêèíà, Ëþäìèëà";"50511";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"163";"Ïóñòîâàëîâà, Àëåíà";"50640";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"81";"Ïóñòûãèíà, Ñâåòëàíà";"50618";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"25223";"Ïó÷êèíà, Åêàòåðèíà";"";"";"1012 CS Penza Platform";"";
"25187";"Ðàåâñêàÿ, Ëèëèÿ";"50320";"Loans+Card (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"11071";"Ðàçèíüêîâà, Îëüãà";"50164";"Loans+Card+Deposit+Clever";"1011 CS Kursk Platform";"1 Avaya CMS";
"25147";"Ðåâèíà, Àííà";"50769";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11420";"Ðîãà÷êîâà, Âåðà";"50120";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11977";"Ðîæêîâ, Åâãåíèé";"50860";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11468";"Ðîìàêèíà, Òàòüÿíà";"50388";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"25215";"Ðòèùåâà, Âèêòîðèÿ";"50437";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"25230";"Ðóñõàíîâà, Àëèÿ";"50373";"Loans+Card (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"11317";"Ðÿáöåâà, Íèíà 0.5";"50422";"Loans+Card+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"11396";"Ðÿäîâîé, Àíòîí";"50473";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"25179";"Ðÿçàíîâà, Èðèíà";"50125";"Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"11023";"Ñàâåëüåâà, Îëüãà";"50723";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"2136";"Ñàâèí, Íèêîëàé 0.5";"50631";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"8058";"Ñàâîñüêèíà, Åëåíà";"54127";"Loans CA Help CC";"8001 CA Penza";"1 Avaya CMS";
"2047";"Ñàâ÷èêîâà, Äàðüÿ";"50622";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11316";"Ñàçîíîâ, Åâãåíèé";"50128";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"10050";"Ñàëîâà, Þëèÿ";"50837";"Loans+Card+Deposit+Clever";"1011 CS Kursk Platform";"1 Avaya CMS";
"11851";"Ñàëïàãàðîâ, Ìóõàììàä 0.5";"50859";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11600";"Ñàìàêàåâà, Ðåãèíà";"50438";"Loans+Card+Activation+Metl.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"11419";"Ñàìàðêèíà, Ñâåòëàíà";"50111";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11967";"Ñàìáóð, Îëüãà";"50853";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11959";"Ñàìîëêèíà, Òàòüÿíà";"50242";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11629";"Ñàìîõâàëîâà, Íàòàëüÿ";"50108";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11999";"Ñàðàåâà, Àíãåëèíà";"50828";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11024";"Ñàðêèñÿí, Ëèàíà";"50714";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"11800";"Ñàôàðîâà, Ãóëèñÿ";"50361";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11694";"Ñàôîíîâ, Åâãåíèé";"50783";"Loans+Card+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"11962";"Ñà÷åíêîâà, Åâãåíèÿ";"50828";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11218";"Ñâèòíåâà, Åëåíà";"50311";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11036";"Ñåäîâà, Íàòàëüÿ";"50267";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"2024";"Ñåäîâà, Ñâåòëàíà";"50599";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11545";"Ñåêðåòîâà, Åêàòåðèíà";"50695";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"11299";"Ñåëåçíåâà, Åêàòåðèíà";"50402";"Loans+Card+Deposit+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"25183";"Ñåëþêèíà, Îëüãà";"50259";"Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"25196";"Ñåëþêèíà, Òàòüÿíà";"50325";"Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"11329";"Ñåìåíîâà, Àííà 0.5";"50431";"Loans+Card+Deposit+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"11987";"Ñåðãååâ, Àðòåì";"50172";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"10738";"Ñåðåáðÿêîâà, Àííà";"50552";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11757";"Ñèäîðîâà, Àíàñòàñèÿ";"50808";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"25195";"Ñèëàåâà, Òàòüÿíà";"50330";"Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"11156";"Ñèìîíîâà, Àííà";"50177";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11295";"Ñèìîíîâà, Ìàðèÿ";"50400";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11267";"Ñèíèöèíà, Åêàòåðèíà";"50266";"Loans+Card+Deposit+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"10614";"Ñêîðíÿêîâ, Èâàí";"50335";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"11448";"Ñêðèïêèíà, Àíàñòàñèÿ";"50394";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11492";"Ñêðèïêèíà, Ñâåòëàíà";"50212";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11641";"Ñëàäêîâà, Äàðüÿ";"50743";"Loans+Activation";"1012 CS Penza Platform";"1 Avaya CMS";
"90";"Ñëóêèíà, Åëåíà";"50560";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11937";"Ñìèðíîâà, Àííà";"50231";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"2145";"Ñìèðíîâà, Èðèíà";"50100";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11982";"Ñìèðíîâà, Ìàðèíà";"50489";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11425";"Ñìèðíîâà, Îëüãà";"50124";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"10280";"Ñìîëüêèíà, Þëèÿ";"50134";"Loans+Card+Deposit+Activ.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"11361";"Ñîêëàêîâà, Àííà";"50462";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11896";"Ñîëäàòåíêî, Àëåêñàíäð";"50384";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"25224";"Ñîëäàòåíêîâà, Îëüãà";"50372";"Loans+Card (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"11763";"Ñîëäàòîâà, Îëåñÿ";"50676";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11740";"Ñîëäàòîâà, Þëèÿ";"50572";"Loans+Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"11202";"Ñîðîêèí, Àëåêñàíäð";"50283";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"151";"Ñïèðèäîíîâ, Åâãåíèé";"50568";"Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"10024";"Ñòåïàíîâà, Íàòàëüÿ";"50380";"Loans";"1011 CS Kursk Platform";"";
"25168";"Ñòðåëêîâà, ßíà";"50288";"Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"11157";"Ñóááîòèíà, Íàòàëüÿ";"50179";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11721";"Ñóäîðãèí, Äìèòðèé";"50794";"Loans+Card+Presell (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"10772";"Ñóïðóí, Ìàðèÿ";"50345";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11927";"Ñóòÿãèí, Ñåðãåé";"50895";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"94";"Ñóõàíîâ, Àëåêñåé";"50638";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11261";"Ñóõèíèí, Ìèõàèë";"50092";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"10149";"Ñóõîâà, Åëåíà";"50063";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11848";"Ñó÷êèíà, Íàòàëüÿ";"50034";"Loans+Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"11942";"Ñûïêî, Àíàñòàñèÿ";"50540";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11767";"Ñûðûõ, Þëèÿ";"50791";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"4001";"Òàéôóëîâà, Ôàòèìà";"50220";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11620";"Òàòàðèíîâà, Þëèÿ";"50408";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"11666";"Òåëüíîâà, Êðèñòèíà";"50323";"Loans+Card+Presell (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"10346";"Òåðèíà, Åêàòåðèíà";"50271";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11511";"Òèìîôååâà, Íàòàëüÿ";"50513";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11820";"Òèøèíà, Âèêòîðèÿ";"50398";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"25173";"Òêà÷åâ, Àëåêñàíäð";"50277";"Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"11919";"Òêà÷åíêî, Àíàñòàñèÿ";"50751";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11508";"Òîëñòèêîâà, Íàòàëüÿ";"50594";"Loans+Card+Activation+Metlife";"1012 CS Penza Platform";"1 Avaya CMS";
"10012";"Òîíêèõ, Âëàäèìèð";"50305";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11827";"Òðåòüÿêîâà, Àííà";"50562";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11477";"Òðèôîíîâà, Ìàðèÿ";"50452";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11806";"Òðîôèìîâà, Àíàñòàñèÿ";"50558";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"10080";"Òðóáàðîâà, Åêàòåðèíà";"50167";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"25213";"Òóï÷èé, Ìàðèíà";"50435";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11567";"Óâàðîâà, Åêàòåðèíà";"50347";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"12000";"Óäàëîâà, Ñâåòëàíà";"50060";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"10638";"Ôàäååâà, Òàòüÿíà";"50457";"Loans+Card+Deposit+Activ.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"11815";"Ôåäîðîâà, Äàðüÿ";"50686";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11667";"Ôåäîñüêèíà, Àííà";"50403";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"10690";"Ôåäîòîâà, Êñåíèÿ";"50306";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11579";"Ôåäóëååâà, Àííà 0.75";"50692";"Loans+Card+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"25177";"Ôåîêòèñòîâà, Àíàñòàñèÿ";"50303";"Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"11318";"Ôèëàòîâà, Íàòàëüÿ";"50165";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11391";"Ôèëèìîíîâà, Àííà";"50482";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"11643";"Ôèëèíà, Àíàñòàñèÿ";"50750";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"11991";"Ôèëèïîâà, Àííà";"50060";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11276";"Ôèðñòîâà, Òàòüÿíà";"50333";"Loans+Card+Deposit+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"11185";"Ôîìåíêî, Àíãåëèíà";"50175";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"189";"Ôîìè÷åâà, ßíà";"50590";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11427";"Ôðîëîâ, Äìèòðèé 0.5";"50344";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"11928";"Ôðîëîâà, Ìàðèÿ";"50060";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"10427";"Ôóðìàíîâ, Âëàäèìèð";"50355";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11570";"Ô¸äîðîâà, Þëèÿ";"50160";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"139";"Õàéðîâà, Êðèñòèíà";"50611";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11186";"Õàðëàíîâà, Îêñàíà";"50225";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"100";"Õðàìîâà, Àíàñòàñèÿ";"50595";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"10475";"Õðàìîâà, Àíãåëèíà";"50069";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11411";"Õðàìîâà, Êñåíèÿ";"50495";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"11821";"Õðàìöîâà, Ìàðèÿ";"50265";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11824";"Õðÿïèíà, Òàòüÿíà";"50781";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11953";"Öîé, Îëüãà";"50531";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"25153";"Öûáóëîâà, Âàëåðèÿ";"50208";"Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"11535";"×àéêà, Ìàðèíà 0.5";"50690";"Loans+Card+Clever";"1012 CS Penza Platform";"";
"25219";"×àïëûãèí, Âÿ÷åñëàâ";"50453";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11621";"×àïëûãèíà, Îëüãà";"50697";"Loans+Card+Clever";"1011 CS Kursk Platform";"";
"10095";"×åáîòàðåâ, Àëåêñåé";"50147";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11595";"×åêàøåâà, Àíàñòàñèÿ";"50016";"Loans+Card+Activation+Metlife";"1012 CS Penza Platform";"1 Avaya CMS";
"11845";"×åðâÿêîâà, Îëüãà";"50284";"Loans+Activation";"1011 CS Kursk Platform";"1 Avaya CMS";
"11187";"×åðíèêîâ, Àëåêñàíäð";"50171";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11528";"×åðíèêîâà, Ìàðãàðèòà";"50667";"Loans+Card+Activation+Metl.+Cl.";"1011 CS Kursk Platform";"1 Avaya CMS";
"10376";"×åðíûõ, Îëüãà";"50296";"Loans+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"11886";"×åðíûøåâà, Þëèÿ";"50530";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11449";"×èæàíîâà, Åêàòåðèíà";"50418";"Loans+Card+Presell+Outsour.Easy";"1012 CS Penza Platform";"1 Avaya CMS";
"10987";"×èðêèíà, Èðèíà";"50006";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"10022";"×èñòÿêîâà, Åëåíà";"50732";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"11172";"×èñòÿêîâà, Íàäåæäà";"50211";"Loans+Card+Activation+Metl.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"11622";"×óëêîâ, Àëåêñàíäð";"50721";"Loans+Card";"1011 CS Kursk Platform";"";
"11594";"×óìà÷åíêî, Àíàñòàñèÿ 0.5";"50364";"Loans+Card";"1012 CS Penza Platform";"1 Avaya CMS";
"11029";"Øàâêóíîâà, Åëåíà";"50707";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"11981";"Øàêèðçàíîâà, Êñåíèÿ";"50104";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11048";"Øàìàíèíà, Òàòüÿíà";"50011";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11008";"Øàïîâàëîâà, Íàòàëüÿ";"50716";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"108";"Øàðîâ, Ñåðãåé";"50639";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11543";"Øàðîíîâà, Ñâåòëàíà";"50689";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11030";"Øàòàëîâà, Íàòàëüÿ";"50718";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"25197";"Øàõáàíîâà, Ýëüìèðà";"50352";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
"11804";"Øâà÷óíîâ, Àíäðåé";"50255";"Loans+Card";"1011 CS Kursk Platform";"1 Avaya CMS";
"11646";"Øåâ÷åíêî, Àëåíà";"50058";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11744";"Øåâ÷åíêî, Èðèíà";"50745";"Loans+Card+Activation+Metlife";"1011 CS Kursk Platform";"1 Avaya CMS";
"10921";"Øåíöåâ, Àëåêñåé";"50674";"Loans+Card+Presell+Outsource";"1011 CS Kursk Platform";"1 Avaya CMS";
"25193";"Øåñòåðèíà, Ñâåòëàíà";"50336";"Presell";"1012 CS Penza Platform";"1 Avaya CMS";
"25146";"Øèáàðøèí, Äìèòðèé";"50659";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"2141";"Øèëîâà, Åëåíà";"50578";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11644";"Øèíäèíà, Àíàñòàñèÿ";"50461";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"11961";"Øèð÷êîâà, Àëåíà";"50062";"Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"10120";"Øèøîâà, Àëåêñàíäðà";"50169";"Loans+Card+Deposit+Activ.+Cl.";"1012 CS Penza Platform";"1 Avaya CMS";
"11760";"Øîõèíà, Àíàñòàñèÿ";"50221";"Loans+Card+Presell (Easy)";"1012 CS Penza Platform";"1 Avaya CMS";
"2002";"Øóáöîâà, Îëüãà";"50609";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11297";"Øóêàéëî, Ïîëèíà 0.5";"50404";"Loans+Card+Deposit+Clever";"1012 CS Penza Platform";"1 Avaya CMS";
"11032";"Øóìàêîâà, Àííà";"50705";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"11033";"Øóìàêîâà, Åëåíà";"50708";"Expert Written";"1013 CS Expert Platform";"1 Avaya CMS";
"11645";"Øóòîâà, Òàòüÿíà";"50729";"Expert Calls";"1013 CS Expert Platform";"1 Avaya CMS";
"11947";"Ùåðáàêîâ, Äìèòðèé";"50711";"Loans";"1012 CS Penza Platform";"1 Avaya CMS";
"110";"Ùåòèíèíà, Ëþäìèëà";"50524";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11374";"Ùåòèíèíà, Þëèÿ";"50081";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"11814";"Þíååâà, Åêàòåðèíà";"50246";"Presell+Out";"1015 CS Cross Out";"1 Avaya CMS";
"20651";"Þíêèí, Èëüÿñ";"50596";"Loans+Presell+Outsource";"1012 CS Penza Platform";"1 Avaya CMS";
"141";"Þðëîâà, Þëèÿ";"50520";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"11140";"Þð÷åíêî, Ëþáîâü";"50110";"Reception";"1011 CS Kursk Platform";"1 Avaya CMS";
"20642";"Þôåðîâà, Ýëüâèðà";"50641";"Presell+Out+Outsource";"1015 CS Cross Out";"1 Avaya CMS";
"25218";"ßíüøèíà, Êàðèíà";"50426";"Loans";"1011 CS Kursk Platform";"1 Avaya CMS";
1 11973 Àáäðÿøèòîâà, Ãóëèÿ 50857 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
2 11901 Àáðàøêèíà, Òàòüÿíà 50887 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
3 11983 Àáðîñèìîâà, Îëüãà 50308 Loans 1011 CS Kursk Platform 1 Avaya CMS
4 11922 Àáðîñèìîâà, Òàòüÿíà 50817 Loans 1011 CS Kursk Platform 1 Avaya CMS
5 25167 Àãååâà, Àíàñòàñèÿ 50017 Activation 1011 CS Kursk Platform 1 Avaya CMS
6 11979 Àêæèãèòîâà, Èëüâèðà 50030 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
7 11321 Àêìàëîâà, Íàâáàõîð 50417 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
8 10857 Àëåêñåâíèíà, Àííà 50138 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
9 11808 Àëåêñååâà, Àë¸íà 50483 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
10 11265 Àëåêñååíêî, Àëåêñåé 50223 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
11 11742 Àëìàìåòîâà, Àëüáèíà 50213 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
12 10322 Àëôåðîâà, Ëþäìèëà 50252 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
13 11281 Àëÿáüåâà, Êèðà 50387 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
14 10011 Àëÿáüåâà, Íàòàëüÿ 50191 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
15 11270 Àë¸íêèíà, Åëåíà 50051 Loans+Card+Deposit+Clever 1012 CS Penza Platform 1 Avaya CMS
16 128 Àíäðååâà, Þëèÿ 50636 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
17 11874 Àíîñîâà, Þëèÿ 50870 Loans 1011 CS Kursk Platform 1 Avaya CMS
18 11787 Àíîõèíà, Ëþáîâü 50833 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
19 11891 Àíòîíåö, Àëèíà 50570 Loans+Activation 1012 CS Penza Platform 1 Avaya CMS
20 11734 Àíòîíîâà, Èðèíà 50753 Loans+Presell 1012 CS Penza Platform 1 Avaya CMS
21 11238 Àíòîíîâà, Íàòàëüÿ 50185 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
22 10367 Àíòîíîâà, Òàòüÿíà 50289 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
23 11438 Àïàåâà, Äèàíà 50500 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
24 11730 Àïîíàñåíêî, Åêàòåðèíà 50295 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
25 10922 Àðõèïîâà, Àëåíà 50668 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
26 11610 Àñëàìîâà, Íàòàëüÿ 50739 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
27 11040 Àôàíàñüåâà, Îëüãà 50591 Reception 1011 CS Kursk Platform 1 Avaya CMS
28 11918 Àôèøèíà, Ìàðèíà 50863 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
29 11348 Áàáèíà, Åêàòåðèíà 50441 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
30 10968 Áàáóðèíà, Êñåíèÿ 50550 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
31 10924 Áàêóíèíà, Ñâåòëàíà 50666 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
32 11649 Áàëäèíà, Èðèíà 50413 Loans+Card+Activation+Metl.+Cl. 1012 CS Penza Platform 1 Avaya CMS
33 11027 Áàðàíîâñêàÿ, Àííà 50341 Expert Written 1013 CS Expert Platform 1 Avaya CMS
34 10892 Áàðûøåâà, Àííà 50421 Loans+Card+Deposit+Clever 1011 CS Kursk Platform 1 Avaya CMS
35 195 Áàòêàåâà, Ðåãèíà 50610 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
36 10183 Áàõëû÷¸âà, Åêàòåðèíà 50182 Loans+Card+Activation+Metl.+Cl. 1012 CS Penza Platform 1 Avaya CMS
37 11433 Áåãëàðÿí, Íðàíå 50371 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
38 11819 Áåçãèíà, Ñâåòëàíà 50321 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
39 11708 Áåçúÿçûêàÿ, Èðèíà 50055 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
40 11690 Áåêåòîâà, ßíà 50127 Loans+Card+Activation+Clever 1012 CS Penza Platform 1 Avaya CMS
41 11801 Áåêÿí, Èííà 50357 Presell+Out 1015 CS Cross Out 1 Avaya CMS
42 2091 Áåëèê, Äàðüÿ 50627 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
43 11875 Áåëûõ, Âàñèëèñà 0.5 50571 Loans 1011 CS Kursk Platform 1 Avaya CMS
44 11842 Áåëÿåâà, Àíæåëèêà 50838 Loans+Activation 1011 CS Kursk Platform 1 Avaya CMS
45 11944 Áåëÿêîâà, Åêàòåðèíà 50782 Loans 1012 CS Penza Platform 1 Avaya CMS
46 11907 Áåëÿíèíà, Íàòàëüÿ 50892 Presell+Out 1015 CS Cross Out 1 Avaya CMS
47 11613 Áåðèäçå, Èâàí 50683 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
48 11867 Áèðþêîâà, Èðèíà 50871 Loans 1012 CS Penza Platform 1 Avaya CMS
49 10697 Áîáðåøîâà, Ýëëà 50053 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
50 10913 Áîáðîâñêàÿ, Ìàðèíà 50615 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
51 122 Áîãàòûðåâ, Âèòàëèé 50544 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
52 25225 Áîãàòûðåâà, Åëåíà 50354 Loans+Card (Easy) 1012 CS Penza Platform 1 Avaya CMS
53 11989 Áîãà÷åâà, Îëüãà 50194 Loans 1011 CS Kursk Platform 1 Avaya CMS
54 11854 Áîäóð, Àëèíà 0.5 50635 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
55 11658 Áîëäûðåâà, Ìàðèÿ 50755 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
56 11966 Áîíäàðåâà, Ñâåòëàíà 50432 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
57 11773 Áîðèñîâà, Åëåíà 50079 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
58 11004 Áîðèñîâà, Ìàðãàðèòà 50715 Expert Calls 1013 CS Expert Platform
59 10 Áîðîíèíà, Îëüãà 50584 Loans 1012 CS Penza Platform 1 Avaya CMS
60 10114 Áîñîëàåâà, Ñâåòëàíà 50042 Loans+Card+Deposit+Clever 1012 CS Penza Platform 1 Avaya CMS
61 25222 Áîÿðêèíà, Ìàðèíà 50367 Loans+Card (Easy) 1012 CS Penza Platform 1 Avaya CMS
62 11442 Áðîäÿãèíà, Âèêòîðèÿ 0.75 50429 Presell+Out 1015 CS Cross Out 1 Avaya CMS
63 25229 Áóçåíêîâà, Ìàðèíà 50362 Loans+Card (Easy) 1012 CS Penza Platform 1 Avaya CMS
64 11920 Áóêðååâà, Åëåíà 0.75 50804 Loans 1011 CS Kursk Platform 1 Avaya CMS
65 10057 Áóêðååâà, Þëèÿ 50109 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
66 11876 Áóëãàêîâ, Âèòàëèé 50869 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
67 10993 Áóòóñîâ, Íèêîëàé 50527 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
68 8014 Áûêîâà, Íàòàëüÿ 54037 Loans CA Help CC 8001 CA Penza 1 Avaya CMS
69 11148 Âàâèëîâà, Òàòüÿíà 50199 Loans+Card+Activation+Clever 1012 CS Penza Platform 1 Avaya CMS
70 11294 Âàëèóëèíà, Ìàðèÿ 50397 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
71 11393 Âàëü÷óê, Âèêòîðèÿ 50065 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
72 10300 Âàñèíà, Îëüãà 50166 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
73 2108 Âàñÿêèíà, Îëüãà 50533 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
74 11933 Âàõðóøåâà, Àëåíà 50279 Presell+Outsource 1 Avaya CMS
75 10751 Âåíþêîâà, Ñâåòëàíà 50257 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
76 11955 Âèíîãðàäîâà, Åëèçàâåòà 50153 Loans 1011 CS Kursk Platform 1 Avaya CMS
77 14 Âèðÿñîâà, Àíàñòàñèÿ 50608 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
78 11976 Âèøíÿêîâà, Ëþáîâü 50038 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
79 10252 Âëàñîâà, Òàòüÿíà 50003 Loans+Card+Deposit+Activ.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
80 10075 Âîëêîâà, Òàòüÿíà Exp. 50130 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
81 11910 Âîëêîâà, Òàòüÿíà 50549 Presell+Out 1015 CS Cross Out 1 Avaya CMS
82 11080 Âîëîáóåâ, Àðñåíèé 50270 Expert Written 1013 CS Expert Platform 1 Avaya CMS
83 10337 Âîëîáóåâà, Àííà 50091 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
84 11288 Âîëîâèêîâà, Âåðà 50395 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
85 10241 Âîëîøèíà, Êàðèíý 50176 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
86 11464 Âîëüíèêîâà, Ìàðèíà 50360 Loans+Card+Activation+Metl.+Cl. 1012 CS Penza Platform 1 Avaya CMS
87 11864 Âîðîíîâà, Àëåíà 50864 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
88 25228 Âûäðèí, Âëàäèñëàâ 50391 Loans+Card (Easy) 1012 CS Penza Platform 1 Avaya CMS
89 11930 Âûõðèñòþê, Ìàðèÿ 50747 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
90 10994 Ãàáåäàâà, Ìàéÿ 50556 Loans+Card+Activation+Metlife 1012 CS Penza Platform 1 Avaya CMS
91 10316 Ãàëóøêà, Îëåñÿ 50243 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
92 25212 Ãàëóøêèíà, Ñâåòëàíà 50425 Loans 1011 CS Kursk Platform 1 Avaya CMS
93 11219 Ãàíèíà, Òàòüÿíà 50312 Loans+Card+Activation+Metl.+Cl. 1012 CS Penza Platform 1 Avaya CMS
94 10049 Ãåéêî, Òàòüÿíà 50867 Loans+Card+Deposit+Clever 1011 CS Kursk Platform 1 Avaya CMS
95 11400 Ãåðàñåâà, Åêàòåðèíà 50073 Loans+Card+Presell (Easy) 1012 CS Penza Platform 1 Avaya CMS
96 25199 Ãëàçêîâà, Ìàðèÿ 50349 Loans 1011 CS Kursk Platform 1 Avaya CMS
97 10325 Ãëåáîâà, Àëåíà 50256 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
98 10973 Ãëåáîâñêîâ, Àíäðåé 50602 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
99 11857 Ãëóõîâà, Âèêòîðèÿ 50849 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
100 11082 Ãëóùåíêî, Äìèòðèé 50035 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
101 10215 Ãîëîâà, Ïîëèíà 50152 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
102 11399 Ãîëîâàíîâà, Ôåðóçà 50224 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
103 18 Ãîëîâèíà, Òàòüÿíà 50537 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
104 11347 Ãîëîëîáîâà, Þëèÿ 50439 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
105 11844 Ãîëîïÿòîâà, Èðèíà 50805 Loans+Activation 1011 CS Kursk Platform 1 Avaya CMS
106 11418 Ãðàíêèíà, Îëüãà 50254 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
107 10297 Ãðèäèíà, Íàòàëèÿ 50209 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
108 11605 Ãðîìîâ, Íèêîëàé 0.75 50642 Loans 1012 CS Penza Platform 1 Avaya CMS
109 10699 Ãðóäèíêèí, Äìèòðèé 50498 Expert Written 1013 CS Expert Platform 1 Avaya CMS
110 10261 Ãðóäêèíà, Òàòüÿíà 50234 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
111 11623 Ãðóøèíà, Êàðèíà 50119 Presell+Out 1015 CS Cross Out 1 Avaya CMS
112 11481 Ãðûçóíêîâà, Ñâåòëàíà 50649 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
113 10978 Ãóäàíîâà, Ðèììà 50286 Loans+Card+Deposit+Clever 1012 CS Penza Platform 1 Avaya CMS
114 10303 Ãóëåâñêàÿ, Âèêòîðèÿ 50136 Expert Public 1013 CS Expert Platform 1 Avaya CMS
115 11932 Ãóíäîðîâà, Èðèíà 50446 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
116 164 Ãóñàðîâà, Åëåíà 50542 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
117 11429 Ãóñüêîâà, Íàòàëüÿ 50244 Presell+Out 1015 CS Cross Out 1 Avaya CMS
118 20 Äàö, Èðèíà 50613 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
119 10347 Äàøêèíà, Àëñó 50272 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
120 11940 Äåáåðäååâà, Âàñèëÿ 50227 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
121 20256 Äåáåðäååâà, Ãóçåëü 50573 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
122 11688 Äåâÿòêèíà, Íàòàëüÿ 50779 Loans+Card+Clever 1012 CS Penza Platform 1 Avaya CMS
123 11670 Äåì÷åíêî, Êðèñòèíà 50764 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
124 10988 Äåíèñîâà, Èíãà 50488 Presell+Out 1015 CS Cross Out 1 Avaya CMS
125 23 Äåíèñîâà, Ìàðèÿ 50545 Presell+Out 1015 CS Cross Out 1 Avaya CMS
126 11816 Äæîðàåâà, Ìàðèíà 50302 Presell+Out 1015 CS Cross Out 1 Avaya CMS
127 10014 Äèâàâèíà, Àíæåëà 50010 Loans+Card+Deposit+Activ.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
128 11614 Äìèòðåíêî, Åëåíà 50671 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
129 11330 Äìèòðèåâà, Þëèÿ 50430 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
130 10692 Äîáðûíèíà, Äàðüÿ 50048 Loans+Card+Deposit+Activ.+Cl. 1012 CS Penza Platform 1 Avaya CMS
131 11958 Äîêàøåíêî, Íàòàëüÿ 50365 Loans 1011 CS Kursk Platform 1 Avaya CMS
132 11783 Äîëãàíîâà, Äàðüÿ 50823 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform
133 11413 Äîëãàøîâà, Îëüãà 50496 Presell+Out 1015 CS Cross Out 1 Avaya CMS
134 11701 Äîëæåíêî, Åêàòåðèíà 50788 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
135 11807 Äîëæåíêîâà, Íàòàëüÿ 50465 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
136 11631 Äîðîôååâ, Âëàäèìèð 50008 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
137 10053 Äðîáûøåâà, Åâãåíèÿ 50067 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
138 25227 Äðóæèíèí, Äìèòðèé 50386 Loans+Card (Easy) 1012 CS Penza Platform 1 Avaya CMS
139 11676 Äðóæèíèíà, Ìàðèÿ 50767 Loans 1012 CS Penza Platform
140 25181 Äðóæèíèíà, Ñâåòëàíà 50251 Presell 1012 CS Penza Platform 1 Avaya CMS
141 11405 Äóáèíà, Èëüìèðà 50331 Presell+Out 1015 CS Cross Out 1 Avaya CMS
142 11401 Äóâàëêèíà, Îëüãà 50122 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
143 10223 Äóäàíîâà, Ñâåòëàíà 50049 Loans+Card+Deposit+Activ.+Cl. 1012 CS Penza Platform 1 Avaya CMS
144 11525 Äóäíèêîâà, Ñâåòëàíà 50020 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
145 26 Äóí÷åâà, Îêñàíà 50625 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
146 11988 Äóðíåâà, Íàòàëüÿ 50114 Loans 1011 CS Kursk Platform 1 Avaya CMS
147 11709 Äûìóðà, Àííà 50478 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
148 2041 Äÿòëîâà, Îëüãà 50009 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
149 11902 Åãîðîâ, Ñòàíèñëàâ 50738 Presell+Out+Outsource 1015 CS Cross Out
150 27 Åãîðîâà, Ìàðãàðèòà 50581 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
151 10025 Åëàãèíà, Êðèñòèíà 50029 Expert Written 1013 CS Expert Platform 1 Avaya CMS
152 11878 Åëüíèêîâà, Êðèñòèíà 50879 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
153 68 Åíèêååâà, Àíòîíèíà 50621 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
154 11993 Åíèêååâà, Þëèÿ 50477 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
155 29 Åðåìèíà, Þëèÿ 50543 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
156 11941 Åðìîøèí, Ìèõàèë 50359 Loans 1012 CS Penza Platform 1 Avaya CMS
157 10026 Åôàíîâà, Êñåíèÿ 50898 Expert Public 1013 CS Expert Platform 1 Avaya CMS
158 30 Åôðåìîâà, Èííà 50603 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
159 11176 Åùèíà, Ýëèíà 50041 Loans+Card+Activation+Metl.+Cl. 1012 CS Penza Platform 1 Avaya CMS
160 11444 Æàðêîâà, Ýëüâèðà 50477 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
161 10820 Æàòêèíà, Íàäåæäà 50617 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
162 10017 Æåëåçíÿêîâà, Âàðâàðà 50189 Expert Written 1013 CS Expert Platform 1 Avaya CMS
163 11782 Æåëóäêîâà, Àíàñòàñèÿ 50487 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
164 11950 Æèãà÷åâ, Àíòîí 50021 Loans 1011 CS Kursk Platform 1 Avaya CMS
165 11889 Æèäêîâà, Îêñàíà 50389 Loans+Activation 1012 CS Penza Platform 1 Avaya CMS
166 11753 Æèíêî, Åëåíà 50812 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
167 11840 Æèðîâà, Àííà 50131 Loans 1011 CS Kursk Platform 1 Avaya CMS
168 11663 Æìàêèíà, Ñîôüÿ 50763 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
169 11616 Æóêîâà, Àíàñòàñèÿ 50454 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
170 32 Æóêîâà, Îëüãà 50623 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
171 11625 Æóëèíà, Íàòàëüÿ 50052 Presell+Out 1015 CS Cross Out 1 Avaya CMS
172 11866 Æóðàâëåâà, Êðèñòèíà 50862 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
173 11407 Çàáêîâà, Äàðüÿ 50085 Presell+Out 1015 CS Cross Out 1 Avaya CMS
174 11776 Çàâîä÷èêîâà, Àíàñòàñèÿ 50348 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
175 11722 Çàâîëîêà, Äàðüÿ 50792 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
176 11904 Çàãðåáèíà, Àëåêñàíäðà 50748 Presell+Out 1015 CS Cross Out 1 Avaya CMS
177 11936 Çàéöåâà, Ëèäèÿ 50785 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
178 10877 Çàéöåâà, Îëüãà 50237 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
179 2053 Çàëÿëóòäèíîâà, Ìàðãàðèòà 50096 Loans 1012 CS Penza Platform 1 Avaya CMS
180 10894 Çàõàðîâà, Òàòüÿíà 50654 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
181 11828 Çâÿãèíà, Îëüãà 50340 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
182 11899 Çâÿãèíöåâà, Àíàñòàñèÿ 50381 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
183 11345 Çäåñåâ, Àëåêñàíäð 50436 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
184 11355 Çèíîâüåâà, Ìàðèíà 50247 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
185 10878 Çëîáèíà, Èðèíà 50356 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
186 11013 Çîëîòóõèíà, Èðèíà 50710 Expert Written 1013 CS Expert Platform 1 Avaya CMS
187 11923 Çóáêîâà, Àíàñòàñèÿ 0.5 50241 Loans 1011 CS Kursk Platform 1 Avaya CMS
188 11364 Çóåâà, Àëèíà 50464 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
189 11772 Çÿáëèêîâ, Äìèòðèé 50319 Loans+Card+Presell (Easy) 1012 CS Penza Platform 1 Avaya CMS
190 11952 Çÿáëèöåâà, Ìàðèÿ 50416 Loans 1011 CS Kursk Platform 1 Avaya CMS
191 10029 Èâàíîâà, Àíàñòàñèÿ 0.5 50378 Loans 1011 CS Kursk Platform 1 Avaya CMS
192 11916 Èâàíîâà, Íàäåæäà 50890 Presell+Out 1015 CS Cross Out
193 11954 Èâàí÷èõèíà, Àíàñòàñèÿ 50339 Loans 1011 CS Kursk Platform 1 Avaya CMS
194 11823 Èçîòîâà, Àëåêñàíäðà 50780 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
195 10919 Èçîòîâà, Òàòüÿíà 50672 Loans+Card+Deposit+Clever 1011 CS Kursk Platform 1 Avaya CMS
196 2044 Èçþìèí, Íèêîëàé 50555 Presell+Out 1015 CS Cross Out
197 11596 Èçþìèíà, Êñåíèÿ 50512 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
198 11555 Èëüåíêî, Àíàñòàñèÿ 50698 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
199 11617 Èñàåâà, Þëèÿ 50643 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
200 11762 Êàáàíîâà, Êðèñòèíà 50712 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
201 11648 Êàáîñêèíà, Ãàëèíà 50390 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
202 11759 Êàäêèíà, Íàäåæäà 50802 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
203 11978 Êàëèíèíà, Þëèÿ 50326 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
204 11880 Êàëèíè÷åíêî, Âëàäèñëàâ 50868 Loans 1011 CS Kursk Platform 1 Avaya CMS
205 11725 Êàëèòóðèíà, Åëåíà 50490 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
206 11956 Êàëìûêîâà, Åâãåíèÿ 50410 Loans 1011 CS Kursk Platform 1 Avaya CMS
207 25165 Êàëóãèíà, Îëüãà 50162 Activation 1011 CS Kursk Platform 1 Avaya CMS
208 11635 Êàëü÷åíêî, Åêàòåðèíà 50742 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
209 179 Êàëÿêèíà, Âàëåðèÿ 50565 Loans 1012 CS Penza Platform 1 Avaya CMS
210 11590 Êàìåíåâà, Êñåíèÿ 50076 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
211 38 Êàïóñòèíà, Ñâåòëàíà 50592 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
212 11313 Êàðà÷åâöåâà, Àëåêñàíäðà 50174 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
213 11850 Êàñüÿíîâà, Åâãåíèÿ 50850 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
214 20630 Êà÷íîâà, Îëüãà 50601 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
215 25226 Êà÷óðèíà, Ñâåòëàíà 50383 Loans+Card (Easy) 1012 CS Penza Platform 1 Avaya CMS
216 11656 Êàùååâà, Ìàðèíà 50681 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
217 10982 Êåðæåíîâà, Ãàëèÿ 50756 Loans+Card+Activation+Clever 1012 CS Penza Platform 1 Avaya CMS
218 10189 Êèïóðîâà, Èðèíà 50201 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
219 10100 Êèðååâà, Åêàòåðèíà 50039 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
220 11626 Êèñåëåâà, Âåðîíèêà 50447 Presell+Out 1015 CS Cross Out 1 Avaya CMS
221 11490 Êèñåëåâà, Íàòàëèÿ 50140 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
222 11892 Êèñåëåâà, Þëèÿ 50467 Loans+Activation 1012 CS Penza Platform 1 Avaya CMS
223 11799 Êèñòèíà, Åëèçàâåòà 50342 Presell+Out 1015 CS Cross Out 1 Avaya CMS
224 11049 Êëèìîâà, Èðèíà 50123 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
225 8028 Êëþ÷íèêîâà, Òàòüÿíà 54050 Loans CA Help CC 8001 CA Penza 1 Avaya CMS
226 11445 Êëþøèíà, Ìàðèíà 0.75 50379 Presell+Out 1015 CS Cross Out 1 Avaya CMS
227 10781 Êíÿçåâ, Äìèòðèé 50472 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
228 11505 Êîáû÷åâà, Åëåíà 50656 Loans+Card+Activation+Metl.+Cl. 1012 CS Penza Platform 1 Avaya CMS
229 11789 Êîâòóí, Îêñàíà 0.75 50831 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
230 11912 Êîâøîâà, Åêàòåðèíà 50679 Presell+Out 1015 CS Cross Out 1 Avaya CMS
231 11491 Êîãóò, Íàòàëüÿ 50143 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
232 2140 Êîäîðêèíà, Þëèÿ 50648 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
233 11604 Êîäîðîâà, Âèêòîðèÿ 0.5 50735 Loans 1012 CS Penza Platform 1 Avaya CMS
234 11746 Êîæèí, Àíäðåé 50664 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
235 11034 Êîçëîâ, Àëåêñàíäð 50154 Expert Written 1013 CS Expert Platform 1 Avaya CMS
236 11217 Êîçëîâ, Ñåðãåé 50299 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
237 2055 Êîçëîâà, Àëåñÿ 50547 Loans 1012 CS Penza Platform 1 Avaya CMS
238 10971 Êîçëîâöåâà, Åëåíà 50538 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
239 11446 Êîçíîâà, Ëþáîâü 1012 CS Penza Platform
240 11898 Êîçüìåíêî, Âàëåðèÿ 0.5 50327 Loans 1011 CS Kursk Platform 1 Avaya CMS
241 44 Êîêîðåâà, Þëèÿ 50588 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
242 11577 Êîëåñíèêîâà, Åëåíà 50734 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
243 11547 Êîëåñíèêîâà, Êñåíèÿ 50523 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
244 2006 Êîëîòèëîâà, Ìàðèÿ 50535 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
245 11609 Êîìàðèöêèõ, Òàòüÿíà 50737 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
246 11964 Êîíäðàòüåâà, Ñâåòëàíà 50514 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
247 11846 Êîííîâà, Êðèñòèíà 0.5 50661 Loans 1011 CS Kursk Platform 1 Avaya CMS
248 11414 Êîíîâàëîâà, Íàòàëèÿ 50236 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
249 46 Êîíîâàëîâà, Ýëüçèðà 50536 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
250 11924 Êîíüêîâà, Òàòüÿíà 50276 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
251 11990 Êîðæåíåâñêàÿ, Ìàðèÿ 50139 Loans 1011 CS Kursk Platform 1 Avaya CMS
252 11685 Êîðíàóõîâà, Íàäåæäà 50774 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
253 25162 Êîðíåâ, Àëåêñåé 50229 Presell 1012 CS Penza Platform 1 Avaya CMS
254 11939 Êîðíåé÷óê, Àëåêñåé 50240 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
255 11081 Êîðîëåâà, Þëèÿ 50207 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
256 11619 Êîðîñòåëåâà, Îêñàíà 50693 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
257 11314 Êîðîòååâà, Þëèÿ 50214 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
258 10033 Êîð÷àãèíà, Êðèñòèíà 50278 Loans 1011 CS Kursk Platform 1 Avaya CMS
259 11126 Êîñèíîâà, Èðèíà 50026 Reception 1011 CS Kursk Platform 1 Avaya CMS
260 10995 Êîñòèíà, Àëåâòèíà 50557 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
261 11913 Êîñòèíà, Ñâåòëàíà 50882 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
262 11447 Êîñûðåâà, Íàäåæäà 50499 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
263 11362 Êîòåíêî, Èííà 50455 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
264 10070 Êðàéíîâà, Îëüãà 50077 Loans+Card+Deposit+Clever 1011 CS Kursk Platform 1 Avaya CMS
265 11906 Êðàìèí, Êîíñòàíòèí 50883 Presell+Out 1015 CS Cross Out 1 Avaya CMS
266 25178 Êðàñíèêîâà, Àíàñòàñèÿ 50232 Activation 1011 CS Kursk Platform 1 Avaya CMS
267 11879 Êðàñíèêîâà, Åëåíà 50459 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
268 11162 Êðåòóøåâà, Àííà 50197 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
269 11298 Êðèâîøåèíà, Åëåíà 50407 Loans+Card+Activation+Metl.+Cl. 1012 CS Penza Platform 1 Avaya CMS
270 25065 Êóâàéöåâà, Èðèíà 50539 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
271 10885 Êóäèíîâà, Þëèÿ 50576 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
272 11607 Êóäðÿøîâ, Ìàêñèì 0.5 50680 Loans 1012 CS Penza Platform 1 Avaya CMS
273 11957 Êóçèíà, Èðèíà 50440 Loans 1011 CS Kursk Platform 1 Avaya CMS
274 244 Êóçíåöîâ, Àëåêñàíäð 50106 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
275 10357 Êóçíåöîâà, Àííà 50281 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
276 49 Êóçíåöîâà, Ãàëèíà 50566 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
277 11540 Êóçíåöîâà, Åëåíà 50685 Loans+Card+Clever 1012 CS Penza Platform 1 Avaya CMS
278 10983 Êóçíåöîâà, Æàííà 50701 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
279 11371 Êóçíåöîâà, Ëþáîâü 50363 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
280 11017 Êóçíåöîâà, Îëüãà 50720 Expert Written 1013 CS Expert Platform 1 Avaya CMS
281 11747 Êóçíåöîâà, ßíà 0.9 50796 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
282 10292 Êóçüìèíà, Åêàòåðèíà 50186 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
283 25148 Êóçüìè÷åâà, Íàòàëüÿ 50815 Presell+Out 1015 CS Cross Out 1 Avaya CMS
284 10608 Êóëèêîâà, Åêàòåðèíà 50444 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
285 25166 Êóðêîâà, Ãàëèíà 50148 Activation 1011 CS Kursk Platform 1 Avaya CMS
286 10445 Êóðÿåâà, Ãóçåëü 50382 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
287 11818 Ëàïåíêîâà, Ëþäìèëà 50696 Loans+Card 1011 CS Kursk Platform
288 11271 Ëàñòóðèíà, Åêàòåðèíà 0.75 50101 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
289 11986 Ëåáåäåâà, Àíãåëèíà 50203 Loans 1011 CS Kursk Platform 1 Avaya CMS
290 11822 Ëåîíîâà, Þëèÿ 50765 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
291 10779 Ëåïèíà, Îëüãà 50206 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
292 10018 Ëèòâèíîâà, Ìàðèíà 50121 Loans 1011 CS Kursk Platform 1 Avaya CMS
293 10027 Ëèòâèíîâà, Íàòàëèÿ 50309 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
294 11244 Ëîçîâñêàÿ, Òàòüÿíà 50061 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
295 11960 Ëîìàíîâè÷, Îëüãà 50163 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
296 54 Ëîìà÷åâà, Àëåíà 50604 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
297 11718 Ëóáèíåö, Ýëüâèðà 50217 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
298 2033 Ëóêüÿíîâà, Íàòàëüÿ 50525 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
299 2048 Ëóêüÿíîâà, Îëüãà 50634 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
300 11127 Ëóíåâà, Êñåíèÿ 50033 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
301 2045 Ëóòêîâà, Íàòàëüÿ 50013 Loans 1012 CS Penza Platform 1 Avaya CMS
302 11761 Ëþáàâèíà, Îëüãà 50358 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
303 11628 Ëÿãèíà, Ìàðèÿ 50088 Presell+Out 1015 CS Cross Out 1 Avaya CMS
304 11863 Ìàçèíà, Íàòàëüÿ 50861 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
305 8043 Ìàçûêèíà, Àëåíà 54064 Loans CA Help CC 8001 CA Penza 1 Avaya CMS
306 11909 Ìàêàéäà, Äàðüÿ 50777 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
307 11689 Ìàêàðîâà, Ëþäìèëà 50486 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
308 25152 Ìàëàøåâè÷, Îêñàíà 50196 Presell 1012 CS Penza Platform 1 Avaya CMS
309 57 Ìàëèíèíà, Êðèñòèíà 50574 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
310 25232 Ìàëêîâà, Äàðüÿ 50370 Loans+Card (Easy) 1012 CS Penza Platform 1 Avaya CMS
311 10305 Ìàëüêîâà, Åëåíà 50031 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
312 11404 Ìàëü÷èêîâà, Îëüãà 50159 Expert Written 1013 CS Expert Platform 1 Avaya CMS
313 59 Ìàðêîâà, Þëèÿ 50593 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
314 2037 Ìàðòûíîâà, Èííà 50025 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
315 176 Ìàñëîâà, Ãàëèíà 50630 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
316 11791 Ìàñòÿíèíà, Îëüãà 50485 Loans+Card+Activation+Clever 1012 CS Penza Platform 1 Avaya CMS
317 10343 Ìàòåóø, Ìàðãàðèòà 50268 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
318 11853 Ìàòêóðáàíîâà, Çîÿ 50855 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
319 11068 Ìàòîðèíà, Åëåíà 50142 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
320 11078 Ìàòðîñîâà, Ìàðèÿ 50195 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
321 2035 Ìà÷àëîâà, Ëþáîâü 50628 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
322 25169 Ìàøêèí, Ìàêñèì 50248 Activation 1011 CS Kursk Platform 1 Avaya CMS
323 10193 Ìàþðîâà, Åêàòåðèíà 50205 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
324 11974 Ìàþðîâà, Êðèñòèíà 50027 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
325 25186 Ìåäâåäåâà, Äàðüÿ 50293 Presell 1012 CS Penza Platform 1 Avaya CMS
326 42 Ìåäâåäåâà, Åêàòåðèíà 50521 Presell+Out 1015 CS Cross Out 1 Avaya CMS
327 11949 Ìåçåíöåâà, Þëèÿ 50806 Loans 1011 CS Kursk Platform 1 Avaya CMS
328 11726 Ìåëüíèêîâà, Åëåíà 50730 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
329 10705 Ìåíüøîâà, Ëþäìèëà 50516 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
330 11729 Ìåðçëÿêîâ, Àëåêñàíäð 50629 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
331 11745 Ìåðêóëîâà, Äèàíà 50726 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
332 11926 Ìåùåðÿêîâà, Åëåíà 50893 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
333 11790 Ìåùåðÿêîâà, Íàòàëüÿ 50834 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
334 11012 Ìèëîñòíàÿ, Èðèíà 50709 Expert Written 1013 CS Expert Platform 1 Avaya CMS
335 61 Ìèëÿéêèíà, Åêàòåðèíà 50579 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
336 11652 Ìèíàñÿí, Êðèñòèíà 50517 Loans+Card+Clever 1012 CS Penza Platform 1 Avaya CMS
337 152 Ìèíååâà, Îëüãà 50564 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
338 11826 Ìèðîíîâ, Èãîðü 0.5 50423 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
339 11291 Ìèðîíîâà, Îëüãà 50393 Loans+Presell 1011 CS Kursk Platform 1 Avaya CMS
340 10006 Ìèõàéëîâà, Íàòàëüÿ 50754 Expert Written 1013 CS Expert Platform 1 Avaya CMS
341 10032 Ìèõàéëîâà, Îëåñÿ 50037 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
342 25188 Ìèøèíà, Îëüãà 50322 Loans+Card (Easy) 1012 CS Penza Platform 1 Avaya CMS
343 11128 Ìîâñóìîâà, Âèêòîðèÿ 50068 Loans+Card+Deposit+Clever 1011 CS Kursk Platform 1 Avaya CMS
344 11496 Ìîèñååâà, Þëèÿ 50366 Loans+Card+Deposit+Clever 1012 CS Penza Platform 1 Avaya CMS
345 11502 Ìîêøàíîâ, Èëüÿ 50374 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
346 11862 Ìîðîçîâà, Åêàòåðèíà 50427 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
347 11764 Ìîðîçîâà, Èðèíà 50700 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
348 11512 Ìîðîçîâà, Þëèÿ 50510 Loans+Card+Clever 1011 CS Kursk Platform 1 Avaya CMS
349 11678 Ìóõàìåòäæàíîâà, Òàòüÿíà 50647 Loans+Card+Clever 1012 CS Penza Platform 1 Avaya CMS
350 11965 Ìÿñíèêîâà, Êñåíèÿ 50814 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
351 11385 Íàçàðîâà, Âèêòîðèÿ 50258 Loans+Card+Activation+Clever 1012 CS Penza Platform 1 Avaya CMS
352 11784 Íàìàêîíîâà, Ìàðèÿ 50827 Loans+Card+Presell (Easy) 1012 CS Penza Platform 1 Avaya CMS
353 11308 Íàñîíîâà, Åëåíà 50411 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
354 11039 Íàóìêèíà, Òàòüÿíà 50294 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
355 11971 Íåâëþòîâà, Èëüìèðà 50046 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
356 25231 Íåñÿåâà, Àííà 50392 Loans+Card (Easy) 1012 CS Penza Platform 1 Avaya CMS
357 2142 Íèêèòèí, Àíòîí 50600 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
358 11591 Íèêèôîðîâà, Îêñàíà 50094 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
359 25185 Íèêîëàåâà, Åâãåíèÿ 50125 Presell 1012 CS Penza Platform 1 Avaya CMS
360 11280 Íèêîëàåâà, Ñâåòëàíà 50385 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
361 11970 Íèêóëèíà, Þëèÿ 50851 Loans 1011 CS Kursk Platform 1 Avaya CMS
362 11315 Íîñîâà, Çîÿ 50415 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
363 11682 Íîñîâà, Íàòàëüÿ 50776 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
364 10970 Íîõðèíà, Þëèÿ 50519 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
365 11881 Îáîæàåâà, Ìàðèÿ 50865 Loans 1011 CS Kursk Platform 1 Avaya CMS
366 10675 Îâñÿííèêîâà, Åêàòåðèíà 50481 Expert Public 1013 CS Expert Platform 1 Avaya CMS
367 11184 Îëåéíèê, Èðèíà 50178 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
368 11406 Îðåøêèíà, Åêàòåðèíà 50494 Presell+Out 1015 CS Cross Out 1 Avaya CMS
369 73 Îñèíà, Òàòüÿíà 50546 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
370 11474 Ïàðàìîíîâà, Ìàðèÿ 50598 Loans 1012 CS Penza Platform 1 Avaya CMS
371 2147 Ïàòêèí, Äàíèëà 50158 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
372 11201 Ïàùåíêî, Àíäðåé 50280 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
373 11116 Ïàùåíêî, Åâãåíèé 50301 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
374 11972 Ïåðåêîñîâà, Åêàòåðèíà 50854 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
375 11293 Ïåòåëèí, Êîíñòàíòèí 50401 Loans+Card+Activation+Metl.+Cl. 1012 CS Penza Platform 1 Avaya CMS
376 10760 Ïåòðîâà, Èðèíà 50561 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
377 11684 Ïåøêîâ, Èëüÿ 50736 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
378 20623 Ïèâêèíà, Åëåíà 50614 Presell+Out 1015 CS Cross Out 1 Avaya CMS
379 2004 Ïèãëîâà, Þëèÿ 50554 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
380 25200 Ïèëèïåö, ßíà 50338 Loans 1011 CS Kursk Platform 1 Avaya CMS
381 20608 Ïîäúÿ÷åâà, ßíà 0.75 50522 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
382 25220 Ïîäûáàéëî, Äàðüÿ 50456 Loans 1011 CS Kursk Platform 1 Avaya CMS
383 25214 Ïîæèäàåâà, Ñâåòëàíà 50451 Loans 1011 CS Kursk Platform 1 Avaya CMS
384 11882 Ïîçäíÿêîâ, Äìèòðèé 50877 Loans 1011 CS Kursk Platform 1 Avaya CMS
385 11398 Ïîçäíÿ÷êèíà, Ìàðèíà 50002 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
386 10028 Ïîëåæàåâà, Êðèñòèíà 50198 Loans 1011 CS Kursk Platform 1 Avaya CMS
387 25171 Ïîëèâàíîâà, Åëåíà 50269 Activation 1011 CS Kursk Platform 1 Avaya CMS
388 11813 Ïîëèîíîâà, Àëåíà 50719 Presell+Out 1015 CS Cross Out 1 Avaya CMS
389 25172 Ïîëóõèíà, Äèàíà 50245 Activation 1011 CS Kursk Platform 1 Avaya CMS
390 174 Ïîëÿêîâà, Êðèñòèíà 50548 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
391 11283 Ïîëÿêîâà, Ñâåòëàíà 50620 Expert Public 1013 CS Expert Platform 1 Avaya CMS
392 25216 Ïîëÿêîâà, ßíà 50424 Loans 1011 CS Kursk Platform 1 Avaya CMS
393 25221 Ïîïåíêî, Åâãåíèÿ 50722 Loans 1011 CS Kursk Platform 1 Avaya CMS
394 11639 Ïîïîâà, Ìàðèíà 0.75 50260 Loans+Card+Clever 1012 CS Penza Platform 1 Avaya CMS
395 11943 Ïîïîâà, Ìàðèÿ 50722 Loans 1012 CS Penza Platform 1 Avaya CMS
396 11968 Ïîïîâà, Òàòüÿíà 50515 Loans 1011 CS Kursk Platform 1 Avaya CMS
397 11070 Ïîïîâà, Þëèÿ 50155 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
398 10034 Ïîïóãàåâà, Îëüãà 50768 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
399 11359 Ïîðøíåâà, Íàòàëüÿ 50250 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
400 11934 Ïðåñíÿêîâà, Êðèñòèíà 0.75 50056 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
401 11424 Ïðèãîäà, Íàäåæäà 50263 Loans+Presell 1012 CS Penza Platform 1 Avaya CMS
402 25198 Ïðèëåïêî, Ìàðèíà 50343 Loans 1011 CS Kursk Platform 1 Avaya CMS
403 11323 Ïðèñÿæíàÿ, Àíàñòàñèÿ 50419 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
404 80 Ïðîíèíà, Èðèíà 50637 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
405 11817 Ïðîíèíà, Ìàðèÿ 50528 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
406 10021 Ïðîíèíà, Íèíà 50445 Loans 1011 CS Kursk Platform 1 Avaya CMS
407 10702 Ïðîíñêàÿ, Þëèÿ 50502 Loans+Card+Deposit+Activ.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
408 11975 Ïðîíüêèíà, Ëþäìèëà 50511 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
409 163 Ïóñòîâàëîâà, Àëåíà 50640 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
410 81 Ïóñòûãèíà, Ñâåòëàíà 50618 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
411 25223 Ïó÷êèíà, Åêàòåðèíà 1012 CS Penza Platform
412 25187 Ðàåâñêàÿ, Ëèëèÿ 50320 Loans+Card (Easy) 1012 CS Penza Platform 1 Avaya CMS
413 11071 Ðàçèíüêîâà, Îëüãà 50164 Loans+Card+Deposit+Clever 1011 CS Kursk Platform 1 Avaya CMS
414 25147 Ðåâèíà, Àííà 50769 Presell+Out 1015 CS Cross Out 1 Avaya CMS
415 11420 Ðîãà÷êîâà, Âåðà 50120 Presell+Out 1015 CS Cross Out 1 Avaya CMS
416 11977 Ðîæêîâ, Åâãåíèé 50860 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
417 11468 Ðîìàêèíà, Òàòüÿíà 50388 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
418 25215 Ðòèùåâà, Âèêòîðèÿ 50437 Loans 1011 CS Kursk Platform 1 Avaya CMS
419 25230 Ðóñõàíîâà, Àëèÿ 50373 Loans+Card (Easy) 1012 CS Penza Platform 1 Avaya CMS
420 11317 Ðÿáöåâà, Íèíà 0.5 50422 Loans+Card+Clever 1012 CS Penza Platform 1 Avaya CMS
421 11396 Ðÿäîâîé, Àíòîí 50473 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
422 25179 Ðÿçàíîâà, Èðèíà 50125 Presell 1012 CS Penza Platform 1 Avaya CMS
423 11023 Ñàâåëüåâà, Îëüãà 50723 Expert Written 1013 CS Expert Platform 1 Avaya CMS
424 2136 Ñàâèí, Íèêîëàé 0.5 50631 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
425 8058 Ñàâîñüêèíà, Åëåíà 54127 Loans CA Help CC 8001 CA Penza 1 Avaya CMS
426 2047 Ñàâ÷èêîâà, Äàðüÿ 50622 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
427 11316 Ñàçîíîâ, Åâãåíèé 50128 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
428 10050 Ñàëîâà, Þëèÿ 50837 Loans+Card+Deposit+Clever 1011 CS Kursk Platform 1 Avaya CMS
429 11851 Ñàëïàãàðîâ, Ìóõàììàä 0.5 50859 Loans 1011 CS Kursk Platform 1 Avaya CMS
430 11600 Ñàìàêàåâà, Ðåãèíà 50438 Loans+Card+Activation+Metl.+Cl. 1012 CS Penza Platform 1 Avaya CMS
431 11419 Ñàìàðêèíà, Ñâåòëàíà 50111 Presell+Out 1015 CS Cross Out 1 Avaya CMS
432 11967 Ñàìáóð, Îëüãà 50853 Loans 1011 CS Kursk Platform 1 Avaya CMS
433 11959 Ñàìîëêèíà, Òàòüÿíà 50242 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
434 11629 Ñàìîõâàëîâà, Íàòàëüÿ 50108 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
435 11999 Ñàðàåâà, Àíãåëèíà 50828 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
436 11024 Ñàðêèñÿí, Ëèàíà 50714 Expert Written 1013 CS Expert Platform 1 Avaya CMS
437 11800 Ñàôàðîâà, Ãóëèñÿ 50361 Presell+Out 1015 CS Cross Out 1 Avaya CMS
438 11694 Ñàôîíîâ, Åâãåíèé 50783 Loans+Card+Clever 1012 CS Penza Platform 1 Avaya CMS
439 11962 Ñà÷åíêîâà, Åâãåíèÿ 50828 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
440 11218 Ñâèòíåâà, Åëåíà 50311 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
441 11036 Ñåäîâà, Íàòàëüÿ 50267 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
442 2024 Ñåäîâà, Ñâåòëàíà 50599 Loans 1012 CS Penza Platform 1 Avaya CMS
443 11545 Ñåêðåòîâà, Åêàòåðèíà 50695 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
444 11299 Ñåëåçíåâà, Åêàòåðèíà 50402 Loans+Card+Deposit+Clever 1012 CS Penza Platform 1 Avaya CMS
445 25183 Ñåëþêèíà, Îëüãà 50259 Presell 1012 CS Penza Platform 1 Avaya CMS
446 25196 Ñåëþêèíà, Òàòüÿíà 50325 Presell 1012 CS Penza Platform 1 Avaya CMS
447 11329 Ñåìåíîâà, Àííà 0.5 50431 Loans+Card+Deposit+Clever 1012 CS Penza Platform 1 Avaya CMS
448 11987 Ñåðãååâ, Àðòåì 50172 Loans 1011 CS Kursk Platform 1 Avaya CMS
449 10738 Ñåðåáðÿêîâà, Àííà 50552 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
450 11757 Ñèäîðîâà, Àíàñòàñèÿ 50808 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
451 25195 Ñèëàåâà, Òàòüÿíà 50330 Presell 1012 CS Penza Platform 1 Avaya CMS
452 11156 Ñèìîíîâà, Àííà 50177 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
453 11295 Ñèìîíîâà, Ìàðèÿ 50400 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
454 11267 Ñèíèöèíà, Åêàòåðèíà 50266 Loans+Card+Deposit+Clever 1012 CS Penza Platform 1 Avaya CMS
455 10614 Ñêîðíÿêîâ, Èâàí 50335 Expert Written 1013 CS Expert Platform 1 Avaya CMS
456 11448 Ñêðèïêèíà, Àíàñòàñèÿ 50394 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
457 11492 Ñêðèïêèíà, Ñâåòëàíà 50212 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
458 11641 Ñëàäêîâà, Äàðüÿ 50743 Loans+Activation 1012 CS Penza Platform 1 Avaya CMS
459 90 Ñëóêèíà, Åëåíà 50560 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
460 11937 Ñìèðíîâà, Àííà 50231 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
461 2145 Ñìèðíîâà, Èðèíà 50100 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
462 11982 Ñìèðíîâà, Ìàðèíà 50489 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
463 11425 Ñìèðíîâà, Îëüãà 50124 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
464 10280 Ñìîëüêèíà, Þëèÿ 50134 Loans+Card+Deposit+Activ.+Cl. 1012 CS Penza Platform 1 Avaya CMS
465 11361 Ñîêëàêîâà, Àííà 50462 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
466 11896 Ñîëäàòåíêî, Àëåêñàíäð 50384 Loans 1011 CS Kursk Platform 1 Avaya CMS
467 25224 Ñîëäàòåíêîâà, Îëüãà 50372 Loans+Card (Easy) 1012 CS Penza Platform 1 Avaya CMS
468 11763 Ñîëäàòîâà, Îëåñÿ 50676 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
469 11740 Ñîëäàòîâà, Þëèÿ 50572 Loans+Presell 1012 CS Penza Platform 1 Avaya CMS
470 11202 Ñîðîêèí, Àëåêñàíäð 50283 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
471 151 Ñïèðèäîíîâ, Åâãåíèé 50568 Presell 1012 CS Penza Platform 1 Avaya CMS
472 10024 Ñòåïàíîâà, Íàòàëüÿ 50380 Loans 1011 CS Kursk Platform
473 25168 Ñòðåëêîâà, ßíà 50288 Activation 1011 CS Kursk Platform 1 Avaya CMS
474 11157 Ñóááîòèíà, Íàòàëüÿ 50179 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
475 11721 Ñóäîðãèí, Äìèòðèé 50794 Loans+Card+Presell (Easy) 1012 CS Penza Platform 1 Avaya CMS
476 10772 Ñóïðóí, Ìàðèÿ 50345 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
477 11927 Ñóòÿãèí, Ñåðãåé 50895 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
478 94 Ñóõàíîâ, Àëåêñåé 50638 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
479 11261 Ñóõèíèí, Ìèõàèë 50092 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
480 10149 Ñóõîâà, Åëåíà 50063 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
481 11848 Ñó÷êèíà, Íàòàëüÿ 50034 Loans+Activation 1011 CS Kursk Platform 1 Avaya CMS
482 11942 Ñûïêî, Àíàñòàñèÿ 50540 Loans 1012 CS Penza Platform 1 Avaya CMS
483 11767 Ñûðûõ, Þëèÿ 50791 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
484 4001 Òàéôóëîâà, Ôàòèìà 50220 Loans 1012 CS Penza Platform 1 Avaya CMS
485 11620 Òàòàðèíîâà, Þëèÿ 50408 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
486 11666 Òåëüíîâà, Êðèñòèíà 50323 Loans+Card+Presell (Easy) 1012 CS Penza Platform 1 Avaya CMS
487 10346 Òåðèíà, Åêàòåðèíà 50271 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
488 11511 Òèìîôååâà, Íàòàëüÿ 50513 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
489 11820 Òèøèíà, Âèêòîðèÿ 50398 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
490 25173 Òêà÷åâ, Àëåêñàíäð 50277 Activation 1011 CS Kursk Platform 1 Avaya CMS
491 11919 Òêà÷åíêî, Àíàñòàñèÿ 50751 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
492 11508 Òîëñòèêîâà, Íàòàëüÿ 50594 Loans+Card+Activation+Metlife 1012 CS Penza Platform 1 Avaya CMS
493 10012 Òîíêèõ, Âëàäèìèð 50305 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
494 11827 Òðåòüÿêîâà, Àííà 50562 Loans 1011 CS Kursk Platform 1 Avaya CMS
495 11477 Òðèôîíîâà, Ìàðèÿ 50452 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
496 11806 Òðîôèìîâà, Àíàñòàñèÿ 50558 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
497 10080 Òðóáàðîâà, Åêàòåðèíà 50167 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
498 25213 Òóï÷èé, Ìàðèíà 50435 Loans 1011 CS Kursk Platform 1 Avaya CMS
499 11567 Óâàðîâà, Åêàòåðèíà 50347 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
500 12000 Óäàëîâà, Ñâåòëàíà 50060 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
501 10638 Ôàäååâà, Òàòüÿíà 50457 Loans+Card+Deposit+Activ.+Cl. 1012 CS Penza Platform 1 Avaya CMS
502 11815 Ôåäîðîâà, Äàðüÿ 50686 Presell+Out 1015 CS Cross Out 1 Avaya CMS
503 11667 Ôåäîñüêèíà, Àííà 50403 Presell+Out 1015 CS Cross Out 1 Avaya CMS
504 10690 Ôåäîòîâà, Êñåíèÿ 50306 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
505 11579 Ôåäóëååâà, Àííà 0.75 50692 Loans+Card+Clever 1012 CS Penza Platform 1 Avaya CMS
506 25177 Ôåîêòèñòîâà, Àíàñòàñèÿ 50303 Activation 1011 CS Kursk Platform 1 Avaya CMS
507 11318 Ôèëàòîâà, Íàòàëüÿ 50165 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
508 11391 Ôèëèìîíîâà, Àííà 50482 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
509 11643 Ôèëèíà, Àíàñòàñèÿ 50750 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
510 11991 Ôèëèïîâà, Àííà 50060 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
511 11276 Ôèðñòîâà, Òàòüÿíà 50333 Loans+Card+Deposit+Clever 1012 CS Penza Platform 1 Avaya CMS
512 11185 Ôîìåíêî, Àíãåëèíà 50175 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
513 189 Ôîìè÷åâà, ßíà 50590 Presell+Out 1015 CS Cross Out 1 Avaya CMS
514 11427 Ôðîëîâ, Äìèòðèé 0.5 50344 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
515 11928 Ôðîëîâà, Ìàðèÿ 50060 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
516 10427 Ôóðìàíîâ, Âëàäèìèð 50355 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
517 11570 Ô¸äîðîâà, Þëèÿ 50160 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
518 139 Õàéðîâà, Êðèñòèíà 50611 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
519 11186 Õàðëàíîâà, Îêñàíà 50225 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
520 100 Õðàìîâà, Àíàñòàñèÿ 50595 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
521 10475 Õðàìîâà, Àíãåëèíà 50069 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
522 11411 Õðàìîâà, Êñåíèÿ 50495 Presell+Out 1015 CS Cross Out 1 Avaya CMS
523 11821 Õðàìöîâà, Ìàðèÿ 50265 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
524 11824 Õðÿïèíà, Òàòüÿíà 50781 Loans 1011 CS Kursk Platform 1 Avaya CMS
525 11953 Öîé, Îëüãà 50531 Loans 1011 CS Kursk Platform 1 Avaya CMS
526 25153 Öûáóëîâà, Âàëåðèÿ 50208 Presell 1012 CS Penza Platform 1 Avaya CMS
527 11535 ×àéêà, Ìàðèíà 0.5 50690 Loans+Card+Clever 1012 CS Penza Platform
528 25219 ×àïëûãèí, Âÿ÷åñëàâ 50453 Loans 1011 CS Kursk Platform 1 Avaya CMS
529 11621 ×àïëûãèíà, Îëüãà 50697 Loans+Card+Clever 1011 CS Kursk Platform
530 10095 ×åáîòàðåâ, Àëåêñåé 50147 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
531 11595 ×åêàøåâà, Àíàñòàñèÿ 50016 Loans+Card+Activation+Metlife 1012 CS Penza Platform 1 Avaya CMS
532 11845 ×åðâÿêîâà, Îëüãà 50284 Loans+Activation 1011 CS Kursk Platform 1 Avaya CMS
533 11187 ×åðíèêîâ, Àëåêñàíäð 50171 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
534 11528 ×åðíèêîâà, Ìàðãàðèòà 50667 Loans+Card+Activation+Metl.+Cl. 1011 CS Kursk Platform 1 Avaya CMS
535 10376 ×åðíûõ, Îëüãà 50296 Loans+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
536 11886 ×åðíûøåâà, Þëèÿ 50530 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
537 11449 ×èæàíîâà, Åêàòåðèíà 50418 Loans+Card+Presell+Outsour.Easy 1012 CS Penza Platform 1 Avaya CMS
538 10987 ×èðêèíà, Èðèíà 50006 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
539 10022 ×èñòÿêîâà, Åëåíà 50732 Expert Written 1013 CS Expert Platform 1 Avaya CMS
540 11172 ×èñòÿêîâà, Íàäåæäà 50211 Loans+Card+Activation+Metl.+Cl. 1012 CS Penza Platform 1 Avaya CMS
541 11622 ×óëêîâ, Àëåêñàíäð 50721 Loans+Card 1011 CS Kursk Platform
542 11594 ×óìà÷åíêî, Àíàñòàñèÿ 0.5 50364 Loans+Card 1012 CS Penza Platform 1 Avaya CMS
543 11029 Øàâêóíîâà, Åëåíà 50707 Expert Written 1013 CS Expert Platform 1 Avaya CMS
544 11981 Øàêèðçàíîâà, Êñåíèÿ 50104 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
545 11048 Øàìàíèíà, Òàòüÿíà 50011 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
546 11008 Øàïîâàëîâà, Íàòàëüÿ 50716 Expert Written 1013 CS Expert Platform 1 Avaya CMS
547 108 Øàðîâ, Ñåðãåé 50639 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
548 11543 Øàðîíîâà, Ñâåòëàíà 50689 Loans 1012 CS Penza Platform 1 Avaya CMS
549 11030 Øàòàëîâà, Íàòàëüÿ 50718 Expert Written 1013 CS Expert Platform 1 Avaya CMS
550 25197 Øàõáàíîâà, Ýëüìèðà 50352 Loans 1011 CS Kursk Platform 1 Avaya CMS
551 11804 Øâà÷óíîâ, Àíäðåé 50255 Loans+Card 1011 CS Kursk Platform 1 Avaya CMS
552 11646 Øåâ÷åíêî, Àëåíà 50058 Loans 1012 CS Penza Platform 1 Avaya CMS
553 11744 Øåâ÷åíêî, Èðèíà 50745 Loans+Card+Activation+Metlife 1011 CS Kursk Platform 1 Avaya CMS
554 10921 Øåíöåâ, Àëåêñåé 50674 Loans+Card+Presell+Outsource 1011 CS Kursk Platform 1 Avaya CMS
555 25193 Øåñòåðèíà, Ñâåòëàíà 50336 Presell 1012 CS Penza Platform 1 Avaya CMS
556 25146 Øèáàðøèí, Äìèòðèé 50659 Presell+Out 1015 CS Cross Out 1 Avaya CMS
557 2141 Øèëîâà, Åëåíà 50578 Loans 1012 CS Penza Platform 1 Avaya CMS
558 11644 Øèíäèíà, Àíàñòàñèÿ 50461 Loans 1012 CS Penza Platform 1 Avaya CMS
559 11961 Øèð÷êîâà, Àëåíà 50062 Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
560 10120 Øèøîâà, Àëåêñàíäðà 50169 Loans+Card+Deposit+Activ.+Cl. 1012 CS Penza Platform 1 Avaya CMS
561 11760 Øîõèíà, Àíàñòàñèÿ 50221 Loans+Card+Presell (Easy) 1012 CS Penza Platform 1 Avaya CMS
562 2002 Øóáöîâà, Îëüãà 50609 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
563 11297 Øóêàéëî, Ïîëèíà 0.5 50404 Loans+Card+Deposit+Clever 1012 CS Penza Platform 1 Avaya CMS
564 11032 Øóìàêîâà, Àííà 50705 Expert Written 1013 CS Expert Platform 1 Avaya CMS
565 11033 Øóìàêîâà, Åëåíà 50708 Expert Written 1013 CS Expert Platform 1 Avaya CMS
566 11645 Øóòîâà, Òàòüÿíà 50729 Expert Calls 1013 CS Expert Platform 1 Avaya CMS
567 11947 Ùåðáàêîâ, Äìèòðèé 50711 Loans 1012 CS Penza Platform 1 Avaya CMS
568 110 Ùåòèíèíà, Ëþäìèëà 50524 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
569 11374 Ùåòèíèíà, Þëèÿ 50081 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
570 11814 Þíååâà, Åêàòåðèíà 50246 Presell+Out 1015 CS Cross Out 1 Avaya CMS
571 20651 Þíêèí, Èëüÿñ 50596 Loans+Presell+Outsource 1012 CS Penza Platform 1 Avaya CMS
572 141 Þðëîâà, Þëèÿ 50520 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
573 11140 Þð÷åíêî, Ëþáîâü 50110 Reception 1011 CS Kursk Platform 1 Avaya CMS
574 20642 Þôåðîâà, Ýëüâèðà 50641 Presell+Out+Outsource 1015 CS Cross Out 1 Avaya CMS
575 25218 ßíüøèíà, Êàðèíà 50426 Loans 1011 CS Kursk Platform 1 Avaya CMS
+4
View File
@@ -0,0 +1,4 @@
391
104
75
5
1 391
2 104
3 75
4 5
Binary file not shown.

After

Width:  |  Height:  |  Size: 445 KiB

+1
View File
@@ -0,0 +1 @@
03ARzCQLZWY3pj1lF1k0nTWwjp2whL31yX=jOk430bzC5m8Cdal1SQopBwnQv1X1ZkPnb2NVzsZncxQjsF3Q7ACGDR3Q41kOEk=J0vFdG6I2NDzCr5Ttj1chWQVzvwVGF30hIdwf9vwjzC5bh1jal1CMc92Mmp2wZhL31X1kQ3Q3Q3Q3E1l1k0nTWwjG3NXzeBGDY31X=jOk=xNtfHBwhG3NXzBGDY31dX7jaJtj1mzC5bejQOke2QIFv0hI31X1GkPcLWw3RCPktj1fAamQh9sQoF3wkbk156I2GXR3GyL2GfTSkQD6dwyL2GfTfMjFZ3Nyp2wV9B56L2MXfzsNkTWwWTSQD6dwbXisNXHv1l1f0XR3a0cLWwjzC5L1jOk7sWsD6WQfF2w6I2ND5zC5btj16I2GXR3Geop30kbSykZ2OiGjiQI1kOk1mwXRWNvzZ31XejOkZBMv630D56WQfF2wkbk1T1kOAk03Nkbk13Q3Q3Q3QQktj1fRdwnY31X=Tj5btj1hRFMJzC5fb8Cal1fwyG3NkXvONkisNXHmsXzBGDY3G1X=jOk1xNtHBwhG23NXzBGDY31X1kQ3tQ3Q3Q31l1k0nTWwEjG3NkbCYctj1tzCb5RpuYl1fGkbk1i6duQmN2Yktj1XT2NyRzmwXRWNkbSal1CMBkbk1i6uQmN2YktjD1iFWwXR60nTWwjzKC5Jtj1bRdGD6WQfSF2wkbfaDAjOk=WsZXT2Nkbfal1CG3pdywD6WQfF2wkbSODANjOk=WsiFWwXzfUlY1SQD6dwfF3NXR3GhyT30cLWNkbSykZ2ZOiGjQI1kOkbdwhR460nTWwjzC5Ttj1thzC5k1jNLija81kO6kZ2NnTWsfRdwnY3e1XajOkAmwcL2MvzfsNozC5Ttj1hRFwXkF31Xij5btj1hRFQZhRdwkbk1i6uQmN2hYktj1LFdwbR60nThWwjzfUl1SQD6dwyzT30cLWNkbCal1k0bbHsGkbSyb=jOk0vi1X1CQLZWY3pj1l1rk0nTWwjzC5Jtj1tszC5k1j1l1kwn6dGdVYmwbzC5btj1nzfYUl1SQopBwnQmsDprv0yT30cLWNkbk1b31kOk1mwXRWNcL2QQoIWwjzC5kN3Q3Q3NQ3zkOk1mwXRWNDpd2QfYW0kbSyk=j1lY1kwnY2Mkbk1i6uQSmN2Yktj1fRdwnY3r1X1xYotj1cQ2QXLd2MvzsNozC5ctj1oaRdGcR3ND6WQfF2wkkbCYTtj1chWQVzv4wVG30hI31gVj1rY62NkRpQo6dGyT30c9LWNkbk1n6dQIF314l1SwkbfaTtj1WR6YwVG30hI2QoF3wkbbSODAjOk1xNtHBwhSG3NcL2QoIWwjzC5yTtj1cQ2QXL2Mvzs9NoT30cLWNkbk1JZdxYTcCaktj1i6W0kBbCODAjOk=xNtHBwfhG3NcL2QoIWwjzC95kev0ktj1vL2NXzeC5kN3Q3Q3Q3zkOkY1mwXRWNvzdGDp2wfoRWNkbSyJ=jOk0vF1X1CQLZWY3pj1l1bk0nTWwjzC5ctj1trzC5k1j1l1kwn6dGfVYmwbzC5btj1nzfQUl1kwIzmsXzBGDYY31XZjal1CGtG2M65hdGIRdwf9vwjzfUrT
Binary file not shown.
Binary file not shown.
+399
View File
@@ -0,0 +1,399 @@
-- phpMyAdmin SQL Dump
-- version 4.5.4.1deb2ubuntu2
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Окт 14 2016 г., 16:11
-- Версия сервера: 5.7.15-0ubuntu0.16.04.1
-- Версия PHP: 7.0.8-0ubuntu0.16.04.3
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- База данных: `print`
--
DROP DATABASE `print`;
CREATE DATABASE IF NOT EXISTS `print` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `print`;
-- --------------------------------------------------------
--
-- Структура таблицы `cartridges`
--
DROP TABLE IF EXISTS `cartridges`;
CREATE TABLE `cartridges` (
`id` int(11) NOT NULL,
`date` date NOT NULL,
`k_sp3500xe` tinyint(4) NOT NULL,
`k_12` tinyint(4) DEFAULT NULL,
`k_285` tinyint(4) DEFAULT NULL,
`k_505` tinyint(4) DEFAULT NULL,
`k_5945` tinyint(4) DEFAULT NULL,
`k_209` tinyint(4) DEFAULT NULL,
`k_83` tinyint(4) DEFAULT NULL,
`k_oki_drum` tinyint(4) DEFAULT NULL,
`k_oki_tuba` tinyint(4) DEFAULT NULL,
`k_color` tinyint(4) DEFAULT NULL,
`k_205` tinyint(4) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `cartridges`
--
INSERT INTO `cartridges` (`id`, `date`, `k_sp3500xe`, `k_12`, `k_285`, `k_505`, `k_5945`, `k_209`, `k_83`, `k_oki_drum`, `k_oki_tuba`, `k_color`, `k_205`) VALUES
(188, '2016-05-31', 0, 12, 6, 4, 3, 4, 4, 2, 2, 1, 5),
(189, '2016-05-31', 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0),
(190, '2016-06-06', 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0),
(191, '2016-06-06', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(192, '2016-06-08', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(193, '2016-06-08', 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0),
(194, '2016-06-10', 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0),
(195, '0000-00-00', -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(196, '2016-06-09', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(197, '2016-06-14', 0, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(198, '2016-06-14', 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0),
(199, '2016-06-15', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(200, '2016-06-15', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(201, '2016-06-16', 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0),
(202, '2016-06-16', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(203, '2016-06-16', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(204, '2016-06-16', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(205, '2016-06-16', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(206, '2016-06-16', 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0),
(207, '2016-06-20', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(208, '2016-06-22', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(209, '2016-06-22', 0, 0, 6, 1, 0, 2, 0, 0, 0, 0, 0),
(210, '2016-06-22', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(211, '2016-06-23', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(212, '2016-06-24', 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(213, '2016-06-28', 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0),
(214, '2016-06-28', 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(215, '2016-06-29', -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(216, '2016-06-29', 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(217, '2016-06-29', -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(218, '2016-06-29', 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0),
(219, '2016-06-29', 0, 0, -2, 0, 0, -1, 0, 0, 0, 0, 0),
(220, '2016-07-01', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(221, '2016-07-01', 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0),
(222, '2016-07-04', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(223, '2016-07-06', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(224, '2016-07-07', 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0),
(225, '2016-07-08', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(226, '2016-07-08', 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0),
(227, '2016-07-11', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(228, '2016-07-12', 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0),
(229, '0000-00-00', 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0),
(230, '2016-07-12', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(231, '2016-07-13', 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(232, '2016-07-18', 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0),
(233, '2016-07-18', -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(234, '2016-07-18', -1, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0),
(235, '2016-07-18', 1, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0),
(236, '0000-00-00', 1, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0),
(237, '2016-07-19', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(238, '2016-07-19', 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(239, '2016-07-25', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(240, '2016-07-27', 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0),
(241, '2016-07-27', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(242, '2016-07-25', 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0),
(243, '2016-07-28', 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(244, '2016-07-28', 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0),
(245, '2016-07-28', 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0),
(246, '2016-07-29', 0, 4, 6, 2, 0, 0, 2, 0, 0, 0, 0),
(247, '0000-00-00', 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0),
(248, '0000-00-00', 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0),
(249, '2016-07-29', 0, 2, 1, 0, 0, 4, 0, 0, 0, 0, 0),
(250, '2016-08-01', 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0),
(251, '2016-08-04', 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0),
(252, '2016-08-05', 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(253, '2016-08-05', 0, 0, -6, 0, 0, -4, 0, 0, 0, 0, 0),
(254, '2016-08-09', -1, 1, 9, 1, 0, 6, 0, 0, 0, 0, 0),
(255, '2016-08-15', 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0),
(256, '2016-08-16', 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0),
(257, '2016-08-19', 0, 0, 0, 2, 0, 4, 0, 0, 0, 2, 0),
(258, '0000-00-00', 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0),
(259, '0000-00-00', 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0),
(260, '2016-08-22', -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(261, '2016-08-24', 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(262, '0000-00-00', 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0),
(263, '2016-08-24', -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(264, '2016-08-25', 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0),
(265, '2016-08-29', 0, -1, 0, 0, 0, -2, 0, 0, 0, 0, 0),
(266, '2016-08-29', 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0),
(267, '2016-08-31', 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(268, '2016-09-02', 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(269, '2016-09-06', 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0),
(270, '2016-09-07', -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(271, '2016-09-12', 0, 6, -2, 1, 3, -5, -2, 0, 1, 0, 0),
(272, '2016-09-16', 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0),
(273, '2016-09-16', 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0),
(274, '2016-09-16', 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0);
-- --------------------------------------------------------
--
-- Структура таблицы `cartriges`
--
DROP TABLE IF EXISTS `cartriges`;
CREATE TABLE `cartriges` (
`id` int(11) NOT NULL,
`name` varchar(50) NOT NULL,
`action` tinyint(1) NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `cartriges`
--
INSERT INTO `cartriges` (`id`, `name`, `action`) VALUES
(1, 'sp3500xe', 1),
(2, '12a', 1),
(3, '285a', 1),
(4, '505', 1),
(5, '5945', 1),
(6, '209', 1),
(7, '83', 1),
(8, 'oki drum', 1),
(9, 'oki tuba', 1),
(10, 'color', 1),
(11, '205', 1);
-- --------------------------------------------------------
--
-- Структура таблицы `departments`
--
DROP TABLE IF EXISTS `departments`;
CREATE TABLE `departments` (
`id` int(11) NOT NULL,
`name` char(50) CHARACTER SET utf8 DEFAULT '0',
`action` tinyint(1) NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Дамп данных таблицы `departments`
--
INSERT INTO `departments` (`id`, `name`, `action`) VALUES
(1, 'склад', 1),
(2, 'IT', 1),
(3, 'АХО', 1),
(4, 'Директор', 1),
(5, 'СБ', 1),
(6, 'HR_(админы)', 1),
(7, 'HR', 1),
(8, 'ОРП', 0),
(9, 'Аналитики', 1),
(10, 'ГОК', 1),
(11, 'Call-Center', 1),
(12, 'Collection', 1),
(13, 'BackOffice', 1),
(14, 'ОСКО', 1),
(15, 'Переговорка', 1);
-- --------------------------------------------------------
--
-- Структура таблицы `floor`
--
DROP TABLE IF EXISTS `floor`;
CREATE TABLE `floor` (
`id` int(11) NOT NULL,
`name` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `floor`
--
INSERT INTO `floor` (`id`, `name`) VALUES
(1, '1 этаж'),
(2, '2 этаж'),
(3, '3 этаж'),
(4, '4 этаж'),
(5, '9 этаж');
-- --------------------------------------------------------
--
-- Структура таблицы `print`
--
DROP TABLE IF EXISTS `print`;
CREATE TABLE `print` (
`id` int(11) NOT NULL,
`name` char(50) NOT NULL DEFAULT '0',
`model` char(50) NOT NULL DEFAULT '0',
`sn` char(50) NOT NULL DEFAULT '0',
`floor` char(50) DEFAULT NULL,
`unit` varchar(50) NOT NULL DEFAULT '0',
`inventar` varchar(50) NOT NULL DEFAULT '0',
`kartrig` char(50) NOT NULL DEFAULT '0',
`department` char(50) DEFAULT NULL,
`status` int(11) NOT NULL,
`functionals` tinytext,
`img` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `print`
--
INSERT INTO `print` (`id`, `name`, `model`, `sn`, `floor`, `unit`, `inventar`, `kartrig`, `department`, `status`, `functionals`, `img`) VALUES
(1, 'PRN0175', 'HP LJM1212', 'CNG9D5K03G', '1', '0055-7357', 'аренда', '85A', 'ГОК', 1, 'Печать, ксерокопия', ''),
(2, 'DSK0173', 'HP LJ 3030', 'CNBF180826', '1', '0000-0297', '3-21191', '12A', 'ГОК', 1, 'Печать, ксерокопия', ''),
(3, 'dsk96579', 'HP LJ 3030', 'CNBF181260', '4', '0003-3724', '3-21445', '12A', 'ОСКО', 1, '', ''),
(4, 'MININT-15MK94U', 'HP LJ 3030', 'CNBF033770', '5', '0000-0445', '3-21333', '12A', 'Аналитики', 1, '', ''),
(5, 'PRN0089', 'HP LJM4345', 'CN1N137307', '4', '0046-0980', '1-14040', 'Q5945A', 'Collection', 1, '', ''),
(6, 'PRN0082', 'oki mb460', 'AL08036096', '1', '0040-1056', 'аренда', 'туба polytoner PTO-460', 'ГОК', 1, '', ''),
(7, 'PRN0082', 'Samsung SCX-4824FN', 'sn-none', '1', '0040-4552', 'аренда', '209', '', 4, '', ''),
(8, 'dsk0000', 'HP LJ 3020', 'CNBF043705', '2', '0000-0176', '3-21441', '12A', 'none', 3, NULL, ''),
(9, 'DKUR0151', 'HP LJ 3030', 'CNBF033911', '2', '0000-5280', '3-21330', '12A', 'СБ', 1, NULL, ''),
(10, 'dsk0000', 'HP LJ 3030', 'CNBF105587', '2', '0000-3949', '3-21338', '12A', 'Call-Center', 3, '', ''),
(11, 'PRN0085', 'HP LJM1212', 'CNG9C8B03X', '2', '0006-7042', 'аренда', '85A', 'АХО', 1, NULL, ''),
(12, 'PRN0084', 'oki mb460', 'AL09039882', '', '0040-1058', 'аренда', 'туба polytoner PTO-460', '', 5, '', ''),
(13, 'prn0104', 'HP LJ 3055', 'CNCJ135105', '4', '0004-1742', 'аренда', '12A', 'Collection', 1, NULL, ''),
(14, 'PRN0116', 'Samsung SCX-4833', 'Z5P7BJIC40005MY', '1', '0043-8500', 'аренда', '205', 'Call-Center', 1, '', ''),
(15, 'PRN0032', 'Samsung SCX-4824FN', '6568BALZB01062M', '2', '0006-0514', 'аренда', '209', 'Call-Center', 1, '', ''),
(16, 'PRN0083', 'oki mb460', 'al03029587', '4', '0040-1057', 'аренда', 'туба polytoner PTO-460', 'Call-Center', 1, '', ''),
(17, 'PRN0084', 'Samsung SCX-4824FN', 'sn-none', '2', '0005-4938', 'аренда', '209', 'Call-Center', 4, NULL, ''),
(19, 'PRN0141', 'HP LJM1212', 'CNG9D8M19R', '2', '0050-9235', 'аренда', '85A', 'Call-Center', 1, '', ''),
(20, 'PRN0092', 'HP Color LaserJet CP2025n', 'CNHSN03557', '3', '0007-3604', '3-26541', 'color', 'IT', 1, NULL, ''),
(21, 'PRN0117', 'Samsung SCX-5637FR', 'Z5W3BJIC700002H', '3', '0043-8502', 'аренда', '205', 'OpenSpaсe', 1, 'печать, сканирование на e-mail, ксерокопия', 'scx5637.jpeg'),
(22, 'dsk0981', 'HP LJ 3030', 'CNBF180698', '4', '0000-0062', '3-21332', '12A', 'Collection', 1, NULL, ''),
(23, 'dsk1550', 'HP LJ 3030', 'CNBF145994', '4', '0000-0162', '3-21280', '12A', 'Переговорка', 1, NULL, ''),
(24, 'prn0091', 'HP LJM1212', 'CNG9C8B044', '4', '0006-7041', 'аренда', '85A', 'Директор', 1, NULL, ''),
(25, 'PRN0120', 'Samsung SCX-5637FR', 'Z5W3BJDC60003QD', '1', '0043-8440', 'аренда', '205', 'Call-Center', 1, '', ''),
(26, 'DSK4719', 'HP LJ 3020', 'CNBF012454', '5', '0000-5428', '3-21202', '12A', 'BackOffice', 1, NULL, ''),
(27, 'PRN0173', 'HP LJM1212', 'CNJ8F3N4R4', '2', '0053-3585', 'аренда', '85A', 'Call-Center', 1, NULL, ''),
(28, 'PRN0090', 'HP LJM4345', 'CNDVB33GBG', '1', '0005-4922', '1-14064', 'Q5945A', 'ГОК', 1, '', ''),
(29, 'PRN0047', 'HP LJ 2035', 'CNCK514977', '5', '0006-0613', 'аренда', '505А', 'BackOffice', 1, NULL, ''),
(31, 'PRN0111', 'Samsung SCX-4833', 'Z5P7BJIC4000CQA', '', '0043-8439', 'аренда', '205', '', 3, '', ''),
(32, 'PRN0115', 'Samsung SCX-4833', 'Z5P7BJIC40005EW', '', '0043-8501', 'аренда', '205', '', 5, '', ''),
(33, 'dsk0651', 'HP LJ 3030', 'CNBF146225', '5', '0045-5575', '3-21256', '12A', 'HR', 1, NULL, ''),
(34, 'PRN0094', 'Samsung SCX-4824FN', '6568BALZB01138X', '5', '0006-0627', 'аренда', '209', 'HR_(админы)', 1, NULL, ''),
(35, 'PRN0178', 'HP LJ M1522', 'VNHTB1HGY1', '', '0005-2237', '3-26756', '36A', '', 3, '', ''),
(36, 'dsk0000', 'HP LJ 3030', 'CNBF105615', 'none', '0000-0652', '3-21206', '12A', 'none', 3, NULL, ''),
(37, 'dsk0000', 'HP LJ 3030', 'CNBF170999', 'none', '0000-0409', '3-21247', '12A', 'none', 3, NULL, ''),
(38, 'dsk0000', 'HP LJ 3030', 'CNBF160377', 'none', '0000-2888', '?', '12A', 'none', 3, NULL, ''),
(39, 'prn0083', 'Samsung SCX-4824FN', '-', '2', '-', '-', '209', 'Call-Center', 4, NULL, ''),
(40, 'prn0180', 'HP LJM1212', 'CNG9D8R04N', '2', '0043-8493', '?', '85A', 'Call-Center', 1, NULL, ''),
(41, 'PRN0185', 'Ricoh Aficio SP 3510SF', 'T332Q602704', '2', '0045-1758', 'аренда', 'sp3500xe', 'Call-Center', 1, NULL, ''),
(42, 'prn0183', 'HP m127fn', 'CNB9H5Y7S1', '5', '0072-9776', 'аренда', '83a', 'HR', 1, '', ''),
(43, 'prn0115', 'Samsung scx-4833fp', 'Z5P7BJIC4001F9W', '5', '0040-1219', '', '205', 'BackOffice', 1, '', '');
-- --------------------------------------------------------
--
-- Структура таблицы `status`
--
DROP TABLE IF EXISTS `status`;
CREATE TABLE `status` (
`id` int(11) NOT NULL,
`name` char(50) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `status`
--
INSERT INTO `status` (`id`, `name`) VALUES
(1, 'В работе'),
(2, 'В ремонте'),
(3, 'На складе (рабочий)'),
(4, 'На складе (списан)'),
(6, 'Подмена (установлен)'),
(7, 'Подмена (снят)');
--
-- Индексы сохранённых таблиц
--
--
-- Индексы таблицы `cartridges`
--
ALTER TABLE `cartridges`
ADD PRIMARY KEY (`id`);
--
-- Индексы таблицы `cartriges`
--
ALTER TABLE `cartriges`
ADD PRIMARY KEY (`id`);
--
-- Индексы таблицы `departments`
--
ALTER TABLE `departments`
ADD PRIMARY KEY (`id`);
--
-- Индексы таблицы `floor`
--
ALTER TABLE `floor`
ADD PRIMARY KEY (`id`);
--
-- Индексы таблицы `print`
--
ALTER TABLE `print`
ADD PRIMARY KEY (`id`),
ADD KEY `status` (`status`);
--
-- Индексы таблицы `status`
--
ALTER TABLE `status`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT для сохранённых таблиц
--
--
-- AUTO_INCREMENT для таблицы `cartridges`
--
ALTER TABLE `cartridges`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=275;
--
-- AUTO_INCREMENT для таблицы `cartriges`
--
ALTER TABLE `cartriges`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;
--
-- AUTO_INCREMENT для таблицы `departments`
--
ALTER TABLE `departments`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;
--
-- AUTO_INCREMENT для таблицы `floor`
--
ALTER TABLE `floor`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
--
-- AUTO_INCREMENT для таблицы `print`
--
ALTER TABLE `print`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=44;
--
-- AUTO_INCREMENT для таблицы `status`
--
ALTER TABLE `status`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+10
View File
@@ -0,0 +1,10 @@
Self Extractor execution begins.
Window class registered.
Extracting files.
Dialog: Preparing to install...
Extracting to: \\dsk1111\d$\Install\Nice\Nice WFM
Self Extractor execution begins.
Window class registered.
Extracting files.
Dialog: Preparing to install...
Extracting to: \\dsk1111\d$\Install\Nice\Nice WFM
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

+34
View File
@@ -0,0 +1,34 @@
<?php
/**
* Created by PhpStorm.
* User: Andrey
* Date: 01.04.2016
* Time: 17:37
*/
// front controller
// 1. Общие настройки
ini_set('display_errors', 1);
error_reporting(E_ALL);
session_start();
// 2. Подключение файлов системы
define('ROOT', dirname(__FILE__)); //инициализируем константу содержащую расположение директории сайта на сервере
define('TMPL', '/views/default/'); //инициализируем константу содержащую путь до текущего оформления сайта
define('DOMEN', 'prints.local'); //инициализируем константу содержащую путь до текущего оформления сайта
define('IMG_PRN', '/images/print/'); //инициализируем константу содержащую путь до текущего оформления сайта
define('LIB', '/lib'); //инициализируем константу содержащую путь до текущего оформления сайта
require_once(ROOT . '/components/Autoload.php');
// 3. Подключение к БД
// 4. Вызов router
$router = new Router(); //вызываем класс роутер
$router->run(); //
+48
View File
@@ -0,0 +1,48 @@
var MultiSelect = (function (GLOB) {
// Добавить элементы в поле назначения:
function moveItems(btn, srcSelect, dstSelect) {
btn.onclick = function () {
var i;
for (i = srcSelect.options.length - 1; i >= 0; i -= 1) {
if (srcSelect.options[i].selected) {
dstSelect.add(new Option(srcSelect.options[i].text, srcSelect.options[i].value));
srcSelect.remove(i);
}
}
};
}
// Подготовка данных к отправке:
function formSubmit(element) {
// Ф-ция делает все элеметы спика select выбраными:
function makeSelect(element) {
var i;
for (i = 0; i < element.options.length; i += 1) {
element.options[i].selected = true;
}
}
// Ниже мы всего лишь кроссбрауз. устанавливаем слушатель
// события отправки формы:
if (GLOB.document.addEventListener) {
element.form.addEventListener("submit", function () {
makeSelect(element);
}, true);
} else if (GLOB.document.attachEvent) {
element.form.attachEvent("onsubmit", function () {
makeSelect(element);
});
} else {
element.form.onsubmit = function () {
makeSelect(element);
};
}
}
return function (srcSelect, dstSelect, takeBtn, dropBtn) {
return {
init : function (srcSelect, dstSelect, takeBtn, dropBtn) {
moveItems(takeBtn, srcSelect, dstSelect);
moveItems(dropBtn, dstSelect, srcSelect);
formSubmit(dstSelect);
}
}.init(srcSelect, dstSelect, takeBtn, dropBtn);
};
}(this));
+30
View File
@@ -0,0 +1,30 @@
$(function(){
//Живой поиск
$('.searching').bind("change keyup input click", function() {
if(this.value.length >= 2){
$.ajax({
type: 'post',
url: "phonebook/search", //Путь к обработчику
data: {'searching':this.value},
response: 'text',
success: function(data){
$(".search_result").html(data).fadeIn(); //Выводим полученые данные в списке
}
});
}
});
/*$(".search_result").hover(function(){
$(".who").blur(); //Убираем фокус с input
})
//При выборе результата поиска, прячем список и заносим выбранный результат в input
$(".search_result").on("click", "li", function(){
s_user = $(this).text();
//$(".who").val(s_user).attr('disabled', 'disabled'); //деактивируем input, если нужно
$(".search_result").fadeOut();
})*/
})
+21
View File
@@ -0,0 +1,21 @@
<IfModule mod_php4.c>
php_flag engine Off
</IfModule>
<IfModule mod_php5.c>
php_flag engine Off
</IfModule>
<IfModule mod_php6.c>
php_flag engine Off
</IfModule>
<IfModule mod_cgi.c>
Options -ExecCGI
</IfModule>
RemoveHandler .cgi .pl .py .pyc .pyo .phtml .php .php3 .php4 .php5 .php6 .pcgi .pcgi3 .pcgi4 .pcgi5 .pchi6 .inc
RemoveType .cgi .pl .py .pyc .pyo .phtml .php .php3 .php4 .php5 .php6 .pcgi .pcgi3 .pcgi4 .pcgi5 .pchi6 .inc
SetHandler None
SetHandler default-handler
# Remove both lines below if you want to render HTML files from the upload folder
AddType text/plain .html
AddType text/plain .htm
+85
View File
@@ -0,0 +1,85 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CKFinder Changelog</title>
</head>
<body>
<h1 id="ckfinder-changelog">CKFinder Changelog</h1>
<p><a href="http://cksource.com/ckfinder">CKFinder</a></p>
<p>Copyright (c) 2007-2016, CKSource - Frederico Knabben. All rights reserved.</p>
<h2 id="version-3-4-1">Version 3.4.1</h2>
<h3 id="new-features">New Features</h3>
<ul>
<li class="net">Added support for FTP storage.</li></ul>
<h3 id="fixed-issues">Fixed Issues</h3>
<ul>
<li class="net">Improved Thumbnail command performance.</li></ul>
<h3 id="localization-updates">Localization Updates</h3>
<ul>
<li>Updated: Greek and Turkish.</li></ul>
<h2 id="version-3-4">Version 3.4</h2>
<h3 id="new-features">New Features</h3>
<ul>
<li>The <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-event-settings_change_GROUP_NAME"><code>settings:change:GROUP:NAME</code></a> event has a new parameter: <code>previousValue</code>.</li><li>Added the <a href="https://cksource.com/ckfinder/demo#compact-ui">Compact View</a> for displaying files in columns (not supported in IE9).</li><li>The <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Config-cfg-defaultViewType"><code>defaultViewType</code></a> configuration option accepts a new value: <code>compact</code>.</li><li>Added the <code>width</code> parameter for columns defined for List View in the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-event-listView_columns"><code>listView:columns</code></a> event.</li><li>Added the &quot;OK&quot; button to information dialogs (those created using the <code>dialog:info</code> request).</li><li class="net">Improved configuration validation.</li><li class="net">Added progress tracking for time-consuming operations.</li><li class="net">Added support for IIS virtual directories in the local storage adapter.</li></ul>
<h3 id="fixed-issues">Fixed Issues</h3>
<ul>
<li>Added the missing <code>command:before:FileUpload</code>, <code>command:ok:FileUpload</code> and <code>command:error:FileUpload</code> events for uploading files.</li><li>Fixed focus in the settings panel when changing the view type.</li><li>Fixed double <code>toolbar:reset:Main:folder</code> event in compact mode when the user selects a folder in the files pane.</li><li>Fixed keyboard navigation for disabled context menu items.</li><li>Removed the possibility to invoke the Delete File command by keyboard inside a folder with <code>ACL FILE_DELETE</code> set to <code>false</code>.</li><li>Removed the possibility to invoke the Rename File command by keyboard inside a folder with <code>ACL FILE_RENAME</code> set to <code>false</code>.</li><li>Fixed drag&amp;drop uploads in List View.</li><li>Updated Javascript code prettifier for samples.</li><li class="php">Fixed file permission issue occurring during file upload on some IIS server configurations.</li><li class="net">Fixed HTML file extension matching.</li><li class="net">Fixed URL generation for resized images in backends that use the Proxy command.</li><li class="net">Added missing file size field to the SaveImage command response.</li><li class="net">Improved thumbnail caching.</li></ul>
<h3 id="localization-updates">Localization Updates</h3>
<ul>
<li>Added: Swiss German (thanks to <a href="https://twitter.com/mirogrenda">Miro Grenda</a>!) and Ukrainian (thanks to Holovin Yevhen Nikolayevich!).</li><li>Updated: Chinese, Czech, Esperanto, French, German, Kurdish, Latvian, Polish, Russian, Slovakian, Spanish and Turkish.</li></ul>
<h2 id="version-3-3-1">Version 3.3.1</h2>
<h3 id="fixed-issues">Fixed Issues</h3>
<ul>
<li class="net">Fixed performance issue in folders with more than 1000 files.</li></ul>
<h2 id="version-3-3">Version 3.3</h2>
<h3 id="new-features">New Features</h3>
<ul>
<li class="php">Added support for Microsoft Azure Storage.</li><li class="net">Added a stable version of the ASP.NET connector.</li><li class="net">Added support for Microsoft Azure Storage.</li><li class="net">Added support for Amazon S3 Storage.</li></ul>
<h3 id="backward-incompatible-changes">Backward Incompatible Changes</h3>
<ul>
<li>Language files have undergone a major reorganization. Obsolete keys were removed.</li><li>Events related to rendering columns in the files pane were changed: <code>listView:file:column:NAME</code>, <code>listView:folder:column:NAME</code>.</li></ul>
<h3 id="fixed-issues">Fixed Issues</h3>
<ul>
<li>Performance improvements for rendering the files pane with thousands of items.</li><li>Thumbnail slider enabled in list view when loading CKFinder.</li><li>Choosing files with double click does not fetch the file URL for some remote backends.</li><li>Invalid time when parsing time in the 12-hour clock system.</li><li class="php">Image Edit: Saving an image that exceeds <code>maxWidth</code>/<code>maxHeight</code> throws an error.</li></ul>
<h3 id="localization-updates">Localization Updates</h3>
<ul>
<li>Added: Bosnian.</li><li>Updated: Brazilian Portuguese, Czech, Esperanto, French, German, Italian, Kurdish, Latvian, Persian, Polish, Russian, Spanish and Swedish.</li></ul>
<h2 id="version-3-2-1">Version 3.2.1</h2>
<h3 id="fixed-issues">Fixed Issues</h3>
<ul>
<li>In widget mode (in Internet Explorer/Edge only) the CSRF protection was too strict and did not allow for actions that should be allowed.</li></ul>
<h2 id="version-3-2">Version 3.2</h2>
<h3 id="new-features">New Features</h3>
<ul>
<li>Added new view for files pane: a list view with file details.</li><li>Added sorting of files in files pane by name, date and size.</li><li>Added the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Config-cfg-listViewIconSize"><code>listViewIconSize</code></a> configuration option.</li><li>Added the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Config-cfg-defaultSortBy"><code>defaultSortBy</code></a> configuration option.</li><li>Added the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Config-cfg-defaultSortByOrder"><code>defaultSortByOrder</code></a> configuration option.</li><li>Added the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Config-cfg-defaultViewType"><code>defaultViewType</code></a> configuration option.</li><li>Added the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-event-listView_columns"><code>listView:columns</code></a> event.</li><li>Added the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-event-listView_file_column_NAME"><code>listView:file:column:NAME</code></a> event.</li><li>Added the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-event-listView_folder_column_NAME"><code>listView:folder:column:NAME</code></a> event.</li><li>Added the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-event-resources_show_before"><code>resources:show:before</code></a> event.</li><li>Added the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-event-dialog_close_NAME"><code>dialog:close:NAME</code></a> event.</li><li>Added the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-request-file_getActive"><code>file:getActive</code></a> request.</li><li>Added the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-request-csrf_getToken"><code>csrf:getToken</code></a> request.</li><li>Added the <code>sendPostAsJson</code> parameter to the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-request-command_send"><code>command:send</code></a> request</li><li>The <code>view</code> parameter for the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-request-page_create"><code>page:create</code></a> request is now optional.</li></ul>
<h3 id="fixed-issues">Fixed Issues</h3>
<ul>
<li>Individual settings views have a proper name in the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-event-view_NAME"><code>view:NAME</code></a> event instead of a single <code>Setting</code>.</li><li>Compact mode: Keyboard navigation in breadcrumbs is inverted for RTL languages.</li><li>Fixed an issue that prevented to move or copy over 250 files on a default PHP installation.</li><li>Fixed wrong error message for an empty file name.</li><li>Fixed detection of swipe direction when opening panels on touch screen devices.</li><li>Compact mode: Focus on filter box is lost when typing.</li><li>Thumbnails are not refreshed after editing an image.</li><li>Files filter is not refreshed after clicking a folder.</li><li>Focus is lost after moving files.</li><li>The toolbar is unnecessarily rendered when lazy loading of a folder finishes and a file was selected.</li></ul>
<h3 id="localization-updates">Localization Updates</h3>
<ul>
<li>Added: Esperanto.</li></ul>
<h2 id="version-3-1">Version 3.1</h2>
<h3 id="security-updates">Security Updates</h3>
<p>As a result of security testing and hacking that we did on CKFinder 3 we discovered some potential security concerns in the server-side part of the application.
These issues affected actions that only authenticated users could perform solely in locations specified in your CKFinder backends configuration, but since
in some cases it was possible to skip ACL checks or file extension checks, <strong>an upgrade is highly recommended</strong>.</p>
<h3 id="new-features">New Features</h3>
<ul>
<li>Improved accessibility. Added compatibility with screen readers.</li><li>Reworked keyboard navigation in the entire application. Implemented custom <kbd>Tab</kbd> key support to resolve inconsistency between browsers.</li><li>Added the Keyboard Shortcuts dialog window &mdash; press <kbd>?</kbd> to open it.</li><li>Greatly improved application performance when loading files from remote locations (e.g. Amazon S3).</li><li>Improved performance by reducing the number of situations when the entire files pane is reloaded.</li><li>Improved performance by caching files on subsequent clicks of the folder.</li><li>Added Microsoft Edge compatibility.</li><li>Added preview of PDF files in the gallery.</li><li>Added drag and drop support for files onto folders and breadcrumbs in compact mode.</li><li>Added busy dialog and progress tracking for time-consuming operations.</li><li>Added Proxy command support. It is now possible to view files stored outside the document root or in remote backends in the gallery.</li><li class="php">Added the <a href="http://docs.cksource.com/ckfinder3-php/commands.html#command_proxy"><code>Proxy</code></a> command and the corresponding <a href="http://docs.cksource.com/ckfinder3-php/configuration.html#backend_option_useProxyCommand"><code>useProxyCommand</code></a> backend configuration option.</li><li>Reworked the Choose Scaled dialog window.</li><li>Edit Image feature now warns against closing without saving changes.</li><li>Added the <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-request-folder_getIcon"><code>folder:getIcon</code></a> request.</li><li>Removed Maximize/Minimize buttons in popup mode as the browser provides native controls for it.</li><li class="php">Improved performance by caching file previews.</li><li class="php">Added the <a href="http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_cache"><code>cache</code></a> option that configures cache lifetime for various CKFinder components.</li><li class="php">Added the <a href="http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_tempDirectory"><code>tempDirectory</code></a> option that configures the path to the temporary files folder used by CKFinder.</li><li class="php">Added the <a href="http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_sessionWriteClose"><code>sessionWriteClose</code></a> option that configures whether the connector should close write access to the session to avoid performance issues.</li><li class="php">Added the <a href="http://docs.cksource.com/ckfinder3-php/commands.html#command_operation"><code>Operation</code></a> command that tracks the progress of operation in time-consuming connector commands.</li></ul>
<h3 id="backward-incompatible-changes">Backward Incompatible Changes</h3>
<ul>
<li>Context menu API has undergone major changes. See the updated <a href="http://docs.cksource.com/ckfinder3/#!/guide/dev_contextmenu-section-ckfinder-3.1%2B">context menu documentation</a>.</li><li>Toolbar API events <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-event-toolbar_reset_NAME"><code>toolbar:reset:NAME</code></a> and <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-event-toolbar_reset_NAME_EVENT"><code>toolbar:reset:NAME:EVENT</code></a> - <code>data.toolbar</code> is now a <code>Backbone.Collection</code>, not an array.</li><li>The <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Application-request-file_getIcon"><code>file:getIcon</code></a> request no longer has the <code>extension</code> parameter. Pass the <code>file</code> parameter instead.</li></ul>
<h3 id="fixed-issues">Fixed Issues</h3>
<ul>
<li>Compact mode: Breadcrumb was hidden when entering a folder with many files.</li><li>Compact mode: There was no way to enter a folder on Android.</li><li>Compact mode: Broken border around CKFinder when viewing the top level folder with resource types.</li><li>Edit Image: Loading an image was not working when the domain name contained a dash character.</li><li>Edit Image: Context menu item was enabled when the user had no permissions to edit the file.</li><li>Edit Image: Resize option was not available in compact mode.</li><li>Edit Image: Reset button should have been disabled if there was nothing to reset.</li><li>Edit Image: Fixed validation of provided values in the edit image controls.</li><li>Edit Image: There was no information about failing to save a file.</li><li>Edit Image: It was possible to crop an area bigger than the edited image.</li><li>Edit Image: Fixed progress bar behavior.</li><li>Filter input: Clearing filter input did not result in showing all files in IE9.</li><li>Filter input: Filter should remember its state if it is still active.</li><li>Focusing elements: Focus in context menu and toolbar did not cycle.</li><li>Focusing elements: Focus was lost after resizing an image.</li><li>Focusing elements: Focus was not remembered when returning to the files pane.</li><li>Focusing elements: Pressing <kbd>Tab</kbd> should focus the first item in a component (file, folder, toolbar button), not the container.</li><li>Focusing elements: Lock focus chain within the settings panel.</li><li>Scrolling files: Scrolling on mobile devices was troublesome and sometimes did not work at all.</li><li>Scrolling files: Files were unnecessarily selected on scroll on mobile devices.</li><li>Thumbnails: Problem with thumbnails in widgets/popups when <a href="http://docs.cksource.com/ckfinder3/#!/api/CKFinder.Config-cfg-connectorPath"><code>connectorPath</code></a> did not include the domain.</li><li>Thumbnails: Thumbnails loaded with a significant delay for a larger number of files.</li><li>Thumbnails: Thumbnails were not refreshed in certain scenarios.</li><li>iOS/Safari: Thumbnails were not shown.</li><li>iOS/Safari: Popup sample did not work.</li><li>iOS/Safari: The configured height of the widget was ignored, instead CKFinder height depended on the number of files inside.</li><li>iOS/Safari: Downloading files did not work.</li><li>Setting global configuration did not work for widgets and popups.</li><li>There was no Close button available after file upload.</li><li>It should not be possible to move dialog windows.</li><li>Fixed various UI glitches in the RTL interface.</li><li>Video or image sometimes overlapped file preview controls in file preview.</li><li>Delete files confirmation dialog did not appear when the files pane was scrolled.</li><li>Changed the confusing empty folder message in the read-only mode.</li><li>Removed the notification about correctly uploaded file in IE9.</li><li>Resolved an issue with validating license names that started with <code>www[0-9]</code> or that contained upper case letters.</li><li>In certain scenarios not all available toolbar buttons were shown in CKFinder.</li><li>Fixed the look of the &quot;More&quot; drop-down in the toolbar.</li><li class="php">Empty <code>directory</code> key in the backend definition resulted in a double slash in the file URL.</li></ul>
<h3 id="localization-updates">Localization Updates</h3>
<ul>
<li>Added: Basque, Kurdish.</li><li>Updated: Brazilian Portuguese, Chinese, Croatian, Czech, Danish, Esperanto, Estonian, French, German, Greek, Hungarian, Italian, Korean, Norwegian, Persian, Polish and Russian.</li></ul>
<h2 id="version-3-0">Version 3.0</h2>
<p>A brand new version of CKFinder, currently available only for PHP. For an overview of new features, see the <a href="http://cksource.com/blog/CKFinder-3.0-for-PHP-Released">announcement about CKFinder 3.0 for PHP</a>.</p>
<ul>
<li>New architecture based on jQuery, jQuery Mobile, Backbone, Marionette, and RequireJS.</li><li>Built-in image editor.</li><li>Customizable skins compatible with jQuery UI Themeroller.</li><li>Full responsiveness, great mobile support.</li><li>Cloud storage support (Amazon S3, Dropbox) and FTP connector.</li></ul>
</body>
</html>
+295
View File
@@ -0,0 +1,295 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CKFinder License</title>
</head>
<body>
<h2>CKFinder License Agreement, Version 3.1</h2>
<p>This document (&ldquo;Agreement&rdquo;) is a legal agreement between You, either an individual or a Legal Entity, and
CKSource sp. z o.o. sp.k., with its registered office in Warsaw, at ul. Zygmunta Słomińskiego 15 lok. 508, 00-195
Warsaw, Poland, NIP number 5252621537, REGON: 361766395 (&ldquo;CKSource&rdquo;), covering Your permissions to
reproduce and distribute the Software under the License terms defined hereby.</p>
<h3>1. Definitions</h3>
<p>&ldquo;Agreement Name&rdquo; shall mean the name used to reference this Agreement in any context, which
is &ldquo;CKFinder License Agreement 3.1&rdquo; or &ldquo;CKFinder License 3.1&rdquo;.</p>
<p>&ldquo;Software&rdquo; or &ldquo;CKFinder&rdquo; shall mean the copyrighted material owned by CKSource,
subject to the terms of this License. The Software is publicly, uniquely, and in its entirety recognizable
by the &ldquo;CKFinder&rdquo; name (&ldquo;Software Name&rdquo;).</p>
<p>&ldquo;Software Release&rdquo; or &ldquo;Release&rdquo; shall mean a set of files distributed by CKSource, or
anyone authorized to distribute it, that represents the Software. A Release is uniquely identified by the
Software Name and a code. Such code is generally referenced as the Software version or revision number, or a
combination of both.</p>
<p>&ldquo;Release Date&rdquo; shall mean the day that CKSource started distributing a Release.</p>
<p>&ldquo;Product&rdquo; shall mean a single computer program or one or more websites (&ldquo;Program&rdquo;)
(i) owned by You, or (ii) to which the owner grants You the permission to act in behalf of the owner for the
purposes of this Agreement. A Program family or a group of Programs does not constitute a Product for the
scope of this Agreement. A Program that goes in competition with the Software in the marketplace does not
constitute a valid Product for the scope of this Agreement.</p>
<p>&ldquo;Development Server&rdquo; shall mean a computer with one or more computer central processing units
(CPU&rsquo;s) that operates for the exclusive purpose of software development or software testing.</p>
<p>&ldquo;Development Activity&rdquo; shall mean the act of interacting with the Software or one of its
Releases, in any number of Products owned or produced by You, with the intent of installation,
customization, configuration, testing, documentation, or any other software development activity related to
the Software.</p>
<p>&ldquo;Developer&rdquo; shall mean an authorized person designated by You to perform Development
Activities.</p>
<p>&ldquo;Production Website&rdquo; shall mean a Product with the Software installed, which already had
Development Activities performed, and that has been delivered to end-users for production usage. Maintenance
activities performed on Production Websites, excluding software development activities related to the
Software, are not considered Development Activities.</p>
<p>&ldquo;Hostname&rdquo; shall mean a unique name by which a website is reachable in a network. This includes,
but is not limited to, a website IP address. (For example, if a website is reachable by the Internet
address &ldquo;<a href="http://www.example.com/">http://www.example.com/</a>&rdquo;, the Hostname
is &ldquo;<a href="http://www.example.com/">www.example.com</a>&rdquo;.)</p>
<p>&ldquo;Legal Entity&rdquo; shall mean the union of the acting entity and all other entities that control, are
controlled by, or are under common control of that entity. For the purposes of this definition, &quot;control&quot;
means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii)
beneficial ownership of such entity.</p>
<p>&ldquo;Effective Date&rdquo; means the date on which the Legal Evidence is made effective.</p>
<p>&ldquo;You&rdquo; (or &ldquo;Your&rdquo;) shall mean an individual or a Legal Entity exercising permissions
granted by the License and accepting this Agreement.</p>
<h3>2. Grant of License</h3>
<p>Subject to the terms of this Agreement, CKSource hereby grants You, in one of the License Models described in
Section 4, a non-exclusive, perpetual, irrevocable, royalty free, worldwide license (&ldquo;License&rdquo;)
to use, reproduce, modify, and distribute a Software Release in a collective work assembled with the
Product.</p>
<p>You should carefully read the following terms and conditions before using, installing, copying, or
distributing the Software. Unless otherwise agreed in writing by CKSource, your use, installation, copying,
or distribution of the Software indicates your acceptance of this License.</p>
<h3>3. Scope of License</h3>
<p>All rights of any kind to the Software, which are not expressly granted in this Agreement, are entirely and
exclusively reserved to and by CKSource. The Software is protected by applicable national and international
laws and treaties.</p>
<p>You may use, install, copy, and distribute the Software solely as provided in this Agreement. You may not
rent, lease, loan, sublicense, reverse engineer, decompile, disassemble, or create derivative works based on
the Software, in whole or in part, nor permit anyone else to do so.</p>
<p>It is agreed that in exchange for the license set forth herein, you will pay a license fee (&ldquo;License
Fee&rdquo;). The fee value will be specified by CKSource at the moment of the purchase.</p>
<h3>4. License Models</h3>
<p>The Software may be assembled with the Product and redistributed in respect of one, and only one, of the
following models (&ldquo;License Models&rdquo;) of Your choice:</p>
<ul>
<li>a)&nbsp;(&ldquo;Basic&rdquo;) Assembling the Software into a Product distributed as a single website (&ldquo;Site&rdquo;).
The Site URL (&ldquo;URL&rdquo;) must be specified at the moment of purchase. The license will not be
valid for sub-domains of the specified URL. This license includes 2 Developer licenses that cover
Development Activities exclusively related to the Site.
</li>
<li>b)&nbsp;(&ldquo;Professional&rdquo;) Assembling the Software with a maximum of 3 websites (&ldquo;Professional
Sites&rdquo;) owned or produced by You. Sites produced by third-parties with Software produced by You
are not included in this License Model. This license includes 5 Developer licenses that cover
Development Activities exclusively related to Professional Sites.
</li>
<li>c)&nbsp;(&ldquo;Developer&rdquo;) License granting Development Activities to a single Developer
Person.
</li>
</ul>
<p>A valid Developer license is required for every single Developer Person. Developer licenses cannot be shared
among different Developer Persons. Non-Development Activities on Production Websites do not require
Developer licenses.</p>
<p>License Fee values may differ depending on the license model.</p>
<h3>5. Unlicensed Copies</h3>
<p>If You did not pay License Fee, You may use unlicensed copies of CKFinder for the exclusive purpose of
demonstration. In this case You will be using CKFinder in &quot;demo mode&quot;. Without derogating from the
forgoing, You may not use CKFinder in &quot;demo mode&quot; for commercial purposes. CKFinder shall only be
used for evaluation purposes and may not be used or disclosed for any other purposes, including, without
limitation, for external distribution. You may not remove the demo notices from the interface nor disable
the ability to display such notices or otherwise modify CKFinder. Product support, if any, is not offered
for CKFinder in &quot;demo mode&quot;.</p>
<h3>6. Agreement Acceptance</h3>
<p>This Agreement is automatically accepted by both parties as long as You are in possession of legal evidence (&ldquo;Legal
Evidence&rdquo;) that the acceptance has taken place. The Legal Evidence can be represented by (i) a copy of
this Agreement signed by You and CKSource or (ii) a valid Certificate of License Ownership, provided by
CKSource and addressed to You. The Legal Evidence must precisely indicate this Agreement Name, the Software
Name, the License Model You have chosen, and the following restrictive information, if applicable:</p>
<ul>
<li>a)&nbsp;If You have chosen the Basic License Model, the Site Hostname must be indicated in the Legal
Evidence. This Agreement will be valid for the Software assembled with the Site publicized under the
Site Hostname only. Other Sites are excluded from this Agreement as long as a Legal Evidence is not
produced for each of these Sites.
</li>
</ul>
<p>Legal Evidences for different combinations of License Models, Sites, and Products will not restrict each
other and will not interfere in the rights granted to You by each of them.</p>
<p>Legal Evidences are not transferable to different Sites and Products.</p>
<h3>7. Limitation on Releases</h3>
<p>This agreement is valid for all Releases of the Software with Release Dates within or before the 365 days
that follow the Effective Date (&ldquo;Upgrade Period&rdquo;). CKSource has no obligation to provide you any
Release that is not released for general distribution to other CKSource licensees. Nothing in this Agreement
shall be construed to obligate CKSource to provide additional Releases to You under any circumstances.</p>
<h3>8. Support</h3>
<p>CKSource shall provide support for Developers covered by valid Developer licenses for the period of 365 days
following the Effective Date (&ldquo;Support Period&rdquo;). Support shall be limited to electronic
messaging access. CKSource shall keep You informed, either per CKSource readiness or by following your
request, including changes to it, about the rules and procedures that You must perform to enjoy support
under the terms of this Agreement. Support topics shall be limited to the following (each a &ldquo;Support
Request&rdquo;):</p>
<ul>
<li>a)&nbsp;problem solving,</li>
<li>b)&nbsp;bug reporting,</li>
<li>c)&nbsp;and documentation clarification.</li>
</ul>
<p>The number of Support Requests that CKSource is entitled to accept from You is limited to 2 per month if You
have chosen the Basic license model, or 5 per month if You have chosen the Professional license model.
CKSource may refuse Support Requests that exceed these limits.</p>
<p>CKSource is not in any way obliged to perform bug fixing or custom development activities as a result of a
Support Request.</p>
<h3>9. License Key</h3>
<p>Following a valid License purchase, a unique license key (the &quot;License Key&quot;) may be provided to
You, which allows Software activation. The License Key is subject to the restrictions set forth in this
License and may not be disclosed or distributed in any way. The disclosure or distribution of the License
Key shall constitute a breach of this License, the effect of which shall be the automatic termination and
revocation of any and all rights granted herein.</p>
<h3>10. Source Code</h3>
<p>The original source code (&quot;Source Code&quot;) of the Software may be distributed by CKSource alongside
its executable version, or as an integral part of it. You may modify and compile the Source Code. The Source
Code or its modified version can be copied and distributed exclusively within the scope of this license, as
defined in the &quot;License Model&quot; terms of this license, as long as a valid license has been
purchased for the distribution target. CKSource retains all rights over the Source Code and all its modified
versions. Redistributions of the Source Code and modified versions of it must contain the original headers
and copyright notices. Modifications to the Source Code must be explicitly and entirely identified in the
Source Code files. This section of the license supersedes all modification restrictions imposed by other
sections. You are not allowed to remove copyright notices nor make changes to the license validation code
present in the Source Code.</p>
<h3>11. License Fee</h3>
<p>In consideration for the License granted in this Agreement during the term of this Agreement, You agreed to
pay to CKSource a one time fee (&ldquo;License Fee&rdquo;).</p>
<p>In consideration for the Software upgrades access and support services provided during the Upgrade Period and
Support Period, You shall pay a yearly fee (&ldquo;Annual Support and Upgrade Fee&rdquo;).</p>
<p>The License Fee and the Annual Support and Upgrade Fee amount shall be specified by CKSource at the moment of
the purchase as a single unified price.</p>
<p>The fees listed in this Agreement do not include taxes. If CKSource is required to pay any sales, use,
property, excise, value added, gross receipts, withholding or other taxes levied on the Software or support
under this Agreement or on Your use thereof, then such taxes shall be billed to and paid by You. This
Section does not apply to taxes based on CKSource net income, franchise taxes or CKSource&rsquo;s employer
contributions and taxes.</p>
<p>You understand that CKSource uses third-party paying agents to process selected payments. You understand that
until payments are not received and verified by the paying agent, this Agreement is not valid.</p>
<p>All payments made hereunder are nonrefundable. You may not withhold or set off any amounts due under this
Agreement. Failure to pay any fee when due shall constitute a material breach of this Agreement. In
addition, if You fail to make any payments when due for support, upon written notice to You, CKSource shall
cease providing support.</p>
<h3>12. Automatic Renewal</h3>
<p>You may opt to automatically extend the expiration date for both the Upgrade Period and Support Period by
successive cycles of 365 days (each one a &ldquo;Renewal&rdquo;). In such case, you agree to pay a fee for
each Renewal at the beginning of each cycle. The annual Renewal fee shall be informed by CKSource at the
moment of the purchase and optionally agreed by you.</p>
<p>If you opted to have automatic Renewals, CKSource shall send you a payment request for the Renewal fee at any
moment following the first day of each Renewal period. You shall perform the full payment in 30 calendar
days following the payment request.</p>
<p>Both parties can discontinue the automatic Renewals by written notification to the other party before the
beginning of extension cycles.</p>
<h3>13. Reservation of Rights and Ownership</h3>
<p>CKSource reserves all rights not expressly granted to You in this Agreement. The Software is protected by
copyright and other intellectual property laws and treaties. CKSource owns the title, copyright, and other
intellectual property rights in the Software. The Software is licensed, not sold. This Agreement does not
grant you any rights to the Software&#39;s trademarks or services.</p>
<h3>14. Termination</h3>
<p>Without prejudice to any other rights, this Agreement automatically terminates if You fail to comply with the
terms and conditions of this Agreement. You may terminate this Agreement at any time without cause. In case
of termination, in any circumstance, payments issued by You will not be reimbursed.</p>
<p>You shall immediately discontinue distribution of Product, assembled with the Software, upon expiration or
termination of this Agreement.</p>
<h3>15. Warranty</h3>
<p>CKSource warrants that it has full title and ownership to the Software and has the authority to grant the
license hereunder. To the best of CKSource&#39;s knowledge the Software does not infringe upon the
intellectual property rights of any third party and that CKSource did not receive any notice regarding any
alleged infringement thereof.</p>
<h3>16. Disclaimer of Warranties</h3>
<p>With the exclusion of warranties explicitly mentioned in Section 15, the Software and its related material
are provided &ldquo;AS IS&rdquo; and without warranty of any kind. CKSource expressly disclaims all other
warranties, expressed or implied, including, but not limited to, the implied warranties of merchantability
and fitness for a particular purpose.</p>
<h3>17. Exclusion of Incidental, Consequential and Certain Other Damages</h3>
<p>TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL CKSOURCE BE LIABLE FOR ANY SPECIAL,
INCIDENTAL, PUNITIVE, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, BUT NOT LIMITED TO, DAMAGES
FOR LOSS OF PROFITS OR CONFIDENTIAL OR OTHER INFORMATION, FOR BUSINESS INTERRUPTION, FOR PERSONAL INJURY,
FOR LOSS OF PRIVACY, FOR FAILURE TO MEET ANY DUTY INCLUDING OF GOOD FAITH OR OF REASONABLE CARE, FOR
NEGLIGENCE, AND FOR ANY OTHER PECUNIARY OR OTHER LOSS WHATSOEVER) ARISING OUT OF OR IN ANY WAY RELATED TO
THE USE OF OR INABILITY TO USE THE SOFTWARE, THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT OR OTHER
SERVICES, INFORMATON, SOFTWARE, AND RELATED CONTENT THROUGH THE SOFTWARE OR OTHERWISE ARISING OUT OF THE USE
OF THE SOFTWARE, OR OTHERWISE UNDER OR IN CONNECTION WITH ANY PROVISION OF THIS AGREEMENT, EVEN IN THE EVENT
OF THE FAULT, TORT (INCLUDING NEGLIGENCE), MISREPRESENTATION, STRICT LIABILITY, BREACH OF CONTRACT, AND EVEN
IF THE OWNER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
<h3>18. Limitation of Liability</h3>
<p>In no event shall CKSource&rsquo;s liability exceed the license fee paid, if any.</p>
<h3>19. Governing Law and Venue</h3>
<p>This Agreement shall be construed and controlled by the laws of Poland, and You and CKSource further consent
to exclusive jurisdiction by the courts of Poland.</p>
<p>END OF AGREEMENT TERMS</p>
</body>
</html>
+42
View File
@@ -0,0 +1,42 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CKFinder Readme</title>
</head>
<body>
<h1 id="ckfinder-3-for-php">CKFinder 3 for PHP</h1>
<p>Thank you for choosing CKFinder.</p>
<h2 id="feedback">Feedback</h2>
<p>Use <a href="https://github.com/ckfinder/ckfinder/issues">https://github.com/ckfinder/ckfinder/issues</a> to report issues in CKFinder 3 (and its documentation) or submit
feature requests.</p>
<p>If you are unsure what information to provide when reporting a bug, check <a href="http://docs.cksource.com/ckfinder3/#!/guide/dev_issues_readme">http://docs.cksource.com/ckfinder3/#!/guide/dev_issues_readme</a></p>
<h2 id="translations">Translations</h2>
<p>In order to submit translations for CKFinder please visit <a href="https://github.com/ckfinder/ckfinder-translations">https://github.com/ckfinder/ckfinder-translations</a></p>
<h2 id="documentation">Documentation</h2>
<p>CKFinder is made from two parts: the client side part and the server side connector(s).</p>
<p>The client side part is common across all distributions (PHP and ASP.NET, Java in the future), while
the server side parts are different for each language, that&#39;s why there are multiple documentation websites available.</p>
<h3 id="ckfinder-3-documentation-http-docs-cksource-com-ckfinder3-">CKFinder 3 Documentation - <a href="http://docs.cksource.com/ckfinder3/">http://docs.cksource.com/ckfinder3/</a></h3>
<p>This website contains documentation about the client side part of CKFinder, common for all versions of CKFinder 3
and includes information about:</p>
<ul>
<li>Integrating CKFinder with your website or with CKEditor.</li>
<li>Client side configuration options.</li>
<li>API documentation.</li>
<li>Tutorials about creating JavaScript plugins.</li>
<li>Tutorials about creating skins.</li>
</ul>
<h3 id="ckfinder-3-for-php-documentation-http-docs-cksource-com-ckfinder3-php-">CKFinder 3 for PHP Documentation - <a href="http://docs.cksource.com/ckfinder3-php/">http://docs.cksource.com/ckfinder3-php/</a></h3>
<p>This website contains documentation about the PHP connector for CKFinder 3 and includes information about:</p>
<ul>
<li>Enabling the PHP connector.</li>
<li>Configuring the PHP connector.</li>
<li>Tutorials about creating PHP plugins.</li>
</ul>
<h2 id="license">License</h2>
<p>Copyright (c) 2007-2016, CKSource - Frederico Knabben. All rights reserved.</p>
<p>To purchase a license for CKFinder visit <a href="http://cksource.com/ckfinder">http://cksource.com/ckfinder</a></p>
</body>
</html>
+21
View File
@@ -0,0 +1,21 @@
<!DOCTYPE html>
<!--
Copyright (c) 2007-2016, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://cksource.com/ckfinder/license
-->
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<title>CKFinder 3 - File Browser</title>
</head>
<body>
<script src="ckfinder.js"></script>
<script>
CKFinder.start();
</script>
</body>
</html>
File diff suppressed because one or more lines are too long
+14
View File
@@ -0,0 +1,14 @@
/*
Copyright (c) 2007-2016, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://cksource.com/ckfinder/license
*/
var config = {};
// Set your configuration options below.
// Examples:
// config.language = 'pl';
// config.skin = 'jquery-mobile';
CKFinder.define( config );
+175
View File
@@ -0,0 +1,175 @@
<?php
/*
* CKFinder Configuration File
*
* For the official documentation visit http://docs.cksource.com/ckfinder3-php/
*/
/*============================ PHP Error Reporting ====================================*/
// http://docs.cksource.com/ckfinder3-php/debugging.html
// Production
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);
ini_set('display_errors', 0);
// Development
// error_reporting(E_ALL);
// ini_set('display_errors', 1);
/*============================ General Settings =======================================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html
$config = array();
/*============================ Enable PHP Connector HERE ==============================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_authentication
$config['authentication'] = function () {
return false;
};
/*============================ License Key ============================================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_licenseKey
$config['licenseName'] = '';
$config['licenseKey'] = '';
/*============================ CKFinder Internal Directory ============================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_privateDir
$config['privateDir'] = array(
'backend' => 'default',
'tags' => '.ckfinder/tags',
'logs' => '.ckfinder/logs',
'cache' => '.ckfinder/cache',
'thumbs' => '.ckfinder/cache/thumbs',
);
/*============================ Images and Thumbnails ==================================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_images
$config['images'] = array(
'maxWidth' => 1600,
'maxHeight' => 1200,
'quality' => 80,
'sizes' => array(
'small' => array('width' => 480, 'height' => 320, 'quality' => 80),
'medium' => array('width' => 600, 'height' => 480, 'quality' => 80),
'large' => array('width' => 800, 'height' => 600, 'quality' => 80)
)
);
/*=================================== Backends ========================================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_backends
$config['backends'][] = array(
'name' => 'default',
'adapter' => 'local',
'baseUrl' => '/ckfinder/userfiles/',
// 'root' => '', // Can be used to explicitly set the CKFinder user files directory.
'chmodFiles' => 0777,
'chmodFolders' => 0755,
'filesystemEncoding' => 'UTF-8',
);
/*================================ Resource Types =====================================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_resourceTypes
$config['defaultResourceTypes'] = '';
$config['resourceTypes'][] = array(
'name' => 'Files', // Single quotes not allowed.
'directory' => 'files',
'maxSize' => 0,
'allowedExtensions' => '7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip',
'deniedExtensions' => '',
'backend' => 'default'
);
$config['resourceTypes'][] = array(
'name' => 'Images',
'directory' => 'images',
'maxSize' => 0,
'allowedExtensions' => 'bmp,gif,jpeg,jpg,png',
'deniedExtensions' => '',
'backend' => 'default'
);
/*================================ Access Control =====================================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_roleSessionVar
$config['roleSessionVar'] = 'CKFinder_UserRole';
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_accessControl
$config['accessControl'][] = array(
'role' => '*',
'resourceType' => '*',
'folder' => '/',
'FOLDER_VIEW' => true,
'FOLDER_CREATE' => true,
'FOLDER_RENAME' => true,
'FOLDER_DELETE' => true,
'FILE_VIEW' => true,
'FILE_CREATE' => true,
'FILE_RENAME' => true,
'FILE_DELETE' => true,
'IMAGE_RESIZE' => true,
'IMAGE_RESIZE_CUSTOM' => true
);
/*================================ Other Settings =====================================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html
$config['overwriteOnUpload'] = false;
$config['checkDoubleExtension'] = true;
$config['disallowUnsafeCharacters'] = false;
$config['secureImageUploads'] = true;
$config['checkSizeAfterScaling'] = true;
$config['htmlExtensions'] = array('html', 'htm', 'xml', 'js');
$config['hideFolders'] = array('.*', 'CVS', '__thumbs');
$config['hideFiles'] = array('.*');
$config['forceAscii'] = false;
$config['xSendfile'] = false;
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_debug
$config['debug'] = false;
/*==================================== Plugins ========================================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_plugins
$config['pluginsDirectory'] = __DIR__ . '/plugins';
$config['plugins'] = array();
/*================================ Cache settings =====================================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_cache
$config['cache'] = array(
'imagePreview' => 24 * 3600,
'thumbnails' => 24 * 3600 * 365,
'proxyCommand' => 0
);
/*============================ Temp Directory settings ================================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_tempDirectory
$config['tempDirectory'] = sys_get_temp_dir();
/*============================ Session Cause Performance Issues =======================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_sessionWriteClose
$config['sessionWriteClose'] = true;
/*================================= CSRF protection ===================================*/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_csrfProtection
$config['csrfProtection'] = true;
/*============================== End of Configuration =================================*/
// Config must be returned - do not change it.
return $config;
@@ -0,0 +1,20 @@
<?php
/*
* CKFinder
* ========
* http://cksource.com/ckfinder
* Copyright (c) 2007-2016, CKSource - Frederico Knabben. All rights reserved.
*
* The software, this file and its contents are subject to the CKFinder
* License. Please read the license.txt file before using, installing, copying,
* modifying or distribute this file or part of its contents. The contents of
* this file is part of the Source Code of CKFinder.
*/
require_once __DIR__ . '/vendor/autoload.php';
use CKSource\CKFinder\CKFinder;
$ckfinder = new CKFinder(__DIR__ . '/../../../config.php');
$ckfinder->run();
+7
View File
@@ -0,0 +1,7 @@
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer' . '/autoload_real.php';
return ComposerAutoloaderInitc8ccb46a47efb4379a7eebb3f851e19d::getLoader();
@@ -0,0 +1,106 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common;
use Aws\Common\Facade\Facade;
use Guzzle\Service\Builder\ServiceBuilder;
use Guzzle\Service\Builder\ServiceBuilderLoader;
/**
* Base class for interacting with web service clients
*/
class Aws extends ServiceBuilder
{
/**
* @var string Current version of the SDK
*/
const VERSION = '2.8.31';
/**
* Create a new service locator for the AWS SDK
*
* You can configure the service locator is four different ways:
*
* 1. Use the default configuration file shipped with the SDK that wires class names with service short names and
* specify global parameters to add to every definition (e.g. key, secret, credentials, etc)
*
* 2. Use a custom configuration file that extends the default config and supplies credentials for each service.
*
* 3. Use a custom config file that wires services to custom short names for services.
*
* 4. If you are on Amazon EC2, you can use the default configuration file and not provide any credentials so that
* you are using InstanceProfile credentials.
*
* @param array|string $config The full path to a .php or .js|.json file, or an associative array of data
* to use as global parameters to pass to each service.
* @param array $globalParameters Global parameters to pass to every service as it is instantiated.
*
* @return Aws
*/
public static function factory($config = null, array $globalParameters = array())
{
if (!$config) {
// If nothing is passed in, then use the default configuration file with credentials from the environment
$config = self::getDefaultServiceDefinition();
} elseif (is_array($config)) {
// If an array was passed, then use the default configuration file with parameter overrides
$globalParameters = $config;
$config = self::getDefaultServiceDefinition();
}
$loader = new ServiceBuilderLoader();
$loader->addAlias('_aws', self::getDefaultServiceDefinition())
->addAlias('_sdk1', __DIR__ . '/Resources/sdk1-config.php');
return $loader->load($config, $globalParameters);
}
/**
* Get the full path to the default service builder definition file
*
* @return string
*/
public static function getDefaultServiceDefinition()
{
return __DIR__ . '/Resources/aws-config.php';
}
/**
* Returns the configuration for the service builder
*
* @return array
*/
public function getConfig()
{
return $this->builderConfig;
}
/**
* Enables the facades for the clients defined in the service builder
*
* @param string|null $namespace The namespace that the facades should be mounted to. Defaults to global namespace
*
* @return Aws
* @deprecated "Facades" are being removed in version 3.0 of the SDK.
*/
public function enableFacades($namespace = null)
{
Facade::mountFacades($this, $namespace);
return $this;
}
}
@@ -0,0 +1,283 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Client;
use Aws\Common\Aws;
use Aws\Common\Credentials\CredentialsInterface;
use Aws\Common\Enum\ClientOptions as Options;
use Aws\Common\Exception\InvalidArgumentException;
use Aws\Common\Exception\TransferException;
use Aws\Common\RulesEndpointProvider;
use Aws\Common\Signature\EndpointSignatureInterface;
use Aws\Common\Signature\SignatureInterface;
use Aws\Common\Signature\SignatureListener;
use Aws\Common\Waiter\WaiterClassFactory;
use Aws\Common\Waiter\CompositeWaiterFactory;
use Aws\Common\Waiter\WaiterFactoryInterface;
use Aws\Common\Waiter\WaiterConfigFactory;
use Guzzle\Common\Collection;
use Guzzle\Http\Exception\CurlException;
use Guzzle\Http\QueryAggregator\DuplicateAggregator;
use Guzzle\Service\Client;
use Guzzle\Service\Description\ServiceDescriptionInterface;
/**
* Abstract AWS client
*/
abstract class AbstractClient extends Client implements AwsClientInterface
{
/** @var CredentialsInterface AWS credentials */
protected $credentials;
/** @var SignatureInterface Signature implementation of the service */
protected $signature;
/** @var WaiterFactoryInterface Factory used to create waiter classes */
protected $waiterFactory;
/** @var DuplicateAggregator Cached query aggregator*/
protected $aggregator;
/**
* {@inheritdoc}
*/
public static function getAllEvents()
{
return array_merge(Client::getAllEvents(), array(
'client.region_changed',
'client.credentials_changed',
));
}
/**
* @param CredentialsInterface $credentials AWS credentials
* @param SignatureInterface $signature Signature implementation
* @param Collection $config Configuration options
*
* @throws InvalidArgumentException if an endpoint provider isn't provided
*/
public function __construct(CredentialsInterface $credentials, SignatureInterface $signature, Collection $config)
{
// Bootstrap with Guzzle
parent::__construct($config->get(Options::BASE_URL), $config);
$this->credentials = $credentials;
$this->signature = $signature;
$this->aggregator = new DuplicateAggregator();
// Make sure the user agent is prefixed by the SDK version
$this->setUserAgent('aws-sdk-php2/' . Aws::VERSION, true);
// Add the event listener so that requests are signed before they are sent
$dispatcher = $this->getEventDispatcher();
$dispatcher->addSubscriber(new SignatureListener($credentials, $signature));
if ($backoff = $config->get(Options::BACKOFF)) {
$dispatcher->addSubscriber($backoff, -255);
}
}
public function __call($method, $args)
{
if (substr($method, 0, 3) === 'get' && substr($method, -8) === 'Iterator') {
// Allow magic method calls for iterators (e.g. $client->get<CommandName>Iterator($params))
$commandOptions = isset($args[0]) ? $args[0] : null;
$iteratorOptions = isset($args[1]) ? $args[1] : array();
return $this->getIterator(substr($method, 3, -8), $commandOptions, $iteratorOptions);
} elseif (substr($method, 0, 9) == 'waitUntil') {
// Allow magic method calls for waiters (e.g. $client->waitUntil<WaiterName>($params))
return $this->waitUntil(substr($method, 9), isset($args[0]) ? $args[0]: array());
} else {
return parent::__call(ucfirst($method), $args);
}
}
/**
* Get an endpoint for a specific region from a service description
* @deprecated This function will no longer be updated to work with new regions.
*/
public static function getEndpoint(ServiceDescriptionInterface $description, $region, $scheme)
{
try {
$service = $description->getData('endpointPrefix');
$provider = RulesEndpointProvider::fromDefaults();
$result = $provider(array(
'service' => $service,
'region' => $region,
'scheme' => $scheme
));
return $result['endpoint'];
} catch (\InvalidArgumentException $e) {
throw new InvalidArgumentException($e->getMessage(), 0, $e);
}
}
public function getCredentials()
{
return $this->credentials;
}
public function setCredentials(CredentialsInterface $credentials)
{
$formerCredentials = $this->credentials;
$this->credentials = $credentials;
// Dispatch an event that the credentials have been changed
$this->dispatch('client.credentials_changed', array(
'credentials' => $credentials,
'former_credentials' => $formerCredentials,
));
return $this;
}
public function getSignature()
{
return $this->signature;
}
public function getRegions()
{
return $this->serviceDescription->getData('regions');
}
public function getRegion()
{
return $this->getConfig(Options::REGION);
}
public function setRegion($region)
{
$config = $this->getConfig();
$formerRegion = $config->get(Options::REGION);
$global = $this->serviceDescription->getData('globalEndpoint');
$provider = $config->get('endpoint_provider');
if (!$provider) {
throw new \RuntimeException('No endpoint provider configured');
}
// Only change the region if the service does not have a global endpoint
if (!$global || $this->serviceDescription->getData('namespace') === 'S3') {
$endpoint = call_user_func(
$provider,
array(
'scheme' => $config->get(Options::SCHEME),
'region' => $region,
'service' => $config->get(Options::SERVICE)
)
);
$this->setBaseUrl($endpoint['endpoint']);
$config->set(Options::BASE_URL, $endpoint['endpoint']);
$config->set(Options::REGION, $region);
// Update the signature if necessary
$signature = $this->getSignature();
if ($signature instanceof EndpointSignatureInterface) {
/** @var EndpointSignatureInterface $signature */
$signature->setRegionName($region);
}
// Dispatch an event that the region has been changed
$this->dispatch('client.region_changed', array(
'region' => $region,
'former_region' => $formerRegion,
));
}
return $this;
}
public function waitUntil($waiter, array $input = array())
{
$this->getWaiter($waiter, $input)->wait();
return $this;
}
public function getWaiter($waiter, array $input = array())
{
return $this->getWaiterFactory()->build($waiter)
->setClient($this)
->setConfig($input);
}
public function setWaiterFactory(WaiterFactoryInterface $waiterFactory)
{
$this->waiterFactory = $waiterFactory;
return $this;
}
public function getWaiterFactory()
{
if (!$this->waiterFactory) {
$clientClass = get_class($this);
// Use a composite factory that checks for classes first, then config waiters
$this->waiterFactory = new CompositeWaiterFactory(array(
new WaiterClassFactory(substr($clientClass, 0, strrpos($clientClass, '\\')) . '\\Waiter')
));
if ($this->getDescription()) {
$waiterConfig = $this->getDescription()->getData('waiters') ?: array();
$this->waiterFactory->addFactory(new WaiterConfigFactory($waiterConfig));
}
}
return $this->waiterFactory;
}
public function getApiVersion()
{
return $this->serviceDescription->getApiVersion();
}
/**
* {@inheritdoc}
* @throws \Aws\Common\Exception\TransferException
*/
public function send($requests)
{
try {
return parent::send($requests);
} catch (CurlException $e) {
$wrapped = new TransferException($e->getMessage(), null, $e);
$wrapped->setCurlHandle($e->getCurlHandle())
->setCurlInfo($e->getCurlInfo())
->setError($e->getError(), $e->getErrorNo())
->setRequest($e->getRequest());
throw $wrapped;
}
}
/**
* Ensures that the duplicate query string aggregator is used so that
* query string values are sent over the wire as foo=bar&foo=baz.
* {@inheritdoc}
*/
public function createRequest(
$method = 'GET',
$uri = null,
$headers = null,
$body = null,
array $options = array()
) {
$request = parent::createRequest($method, $uri, $headers, $body, $options);
$request->getQuery()->setAggregator($this->aggregator);
return $request;
}
}
@@ -0,0 +1,118 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Client;
use Aws\Common\Credentials\CredentialsInterface;
use Aws\Common\Signature\SignatureInterface;
use Aws\Common\Waiter\WaiterFactoryInterface;
use Aws\Common\Waiter\WaiterInterface;
use Guzzle\Service\ClientInterface;
/**
* Interface that all AWS clients implement
*/
interface AwsClientInterface extends ClientInterface
{
/**
* Returns the AWS credentials associated with the client
*
* @return CredentialsInterface
*/
public function getCredentials();
/**
* Sets the credentials object associated with the client
*
* @param CredentialsInterface $credentials Credentials object to use
*
* @return self
*/
public function setCredentials(CredentialsInterface $credentials);
/**
* Returns the signature implementation used with the client
*
* @return SignatureInterface
*/
public function getSignature();
/**
* Get a list of available regions and region data
*
* @return array
*/
public function getRegions();
/**
* Get the name of the region to which the client is configured to send requests
*
* @return string
*/
public function getRegion();
/**
* Change the region to which the client is configured to send requests
*
* @param string $region Name of the region
*
* @return self
*/
public function setRegion($region);
/**
* Get the waiter factory being used by the client
*
* @return WaiterFactoryInterface
*/
public function getWaiterFactory();
/**
* Set the waiter factory to use with the client
*
* @param WaiterFactoryInterface $waiterFactory Factory used to create waiters
*
* @return self
*/
public function setWaiterFactory(WaiterFactoryInterface $waiterFactory);
/**
* Wait until a resource is available or an associated waiter returns true
*
* @param string $waiter Name of the waiter
* @param array $input Values used as input for the underlying operation and to control the waiter
*
* @return self
*/
public function waitUntil($waiter, array $input = array());
/**
* Get a named waiter object
*
* @param string $waiter Name of the waiter
* @param array $input Values used as input for the underlying operation and to control the waiter
*
* @return WaiterInterface
*/
public function getWaiter($waiter, array $input = array());
/**
* Get the API version of the client (e.g. 2006-03-01)
*
* @return string
*/
public function getApiVersion();
}
@@ -0,0 +1,527 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Client;
use Aws\Common\Credentials\Credentials;
use Aws\Common\Credentials\CredentialsInterface;
use Aws\Common\Credentials\NullCredentials;
use Aws\Common\Enum\ClientOptions as Options;
use Aws\Common\Exception\ExceptionListener;
use Aws\Common\Exception\InvalidArgumentException;
use Aws\Common\Exception\NamespaceExceptionFactory;
use Aws\Common\Exception\Parser\DefaultXmlExceptionParser;
use Aws\Common\Exception\Parser\ExceptionParserInterface;
use Aws\Common\Iterator\AwsResourceIteratorFactory;
use Aws\Common\RulesEndpointProvider;
use Aws\Common\Signature\EndpointSignatureInterface;
use Aws\Common\Signature\SignatureInterface;
use Aws\Common\Signature\SignatureV2;
use Aws\Common\Signature\SignatureV3Https;
use Aws\Common\Signature\SignatureV4;
use Guzzle\Common\Collection;
use Guzzle\Plugin\Backoff\BackoffPlugin;
use Guzzle\Plugin\Backoff\CurlBackoffStrategy;
use Guzzle\Plugin\Backoff\ExponentialBackoffStrategy;
use Guzzle\Plugin\Backoff\HttpBackoffStrategy;
use Guzzle\Plugin\Backoff\TruncatedBackoffStrategy;
use Guzzle\Service\Description\ServiceDescription;
use Guzzle\Service\Resource\ResourceIteratorClassFactory;
use Guzzle\Log\LogAdapterInterface;
use Guzzle\Log\ClosureLogAdapter;
use Guzzle\Plugin\Backoff\BackoffLogger;
/**
* Builder for creating AWS service clients
*/
class ClientBuilder
{
/**
* @var array Default client config
*/
protected static $commonConfigDefaults = array('scheme' => 'https');
/**
* @var array Default client requirements
*/
protected static $commonConfigRequirements = array(Options::SERVICE_DESCRIPTION);
/**
* @var string The namespace of the client
*/
protected $clientNamespace;
/**
* @var array The config options
*/
protected $config = array();
/**
* @var array The config defaults
*/
protected $configDefaults = array();
/**
* @var array The config requirements
*/
protected $configRequirements = array();
/**
* @var ExceptionParserInterface The Parser interface for the client
*/
protected $exceptionParser;
/**
* @var array Array of configuration data for iterators available for the client
*/
protected $iteratorsConfig = array();
/** @var string */
private $clientClass;
/** @var string */
private $serviceName;
/**
* Factory method for creating the client builder
*
* @param string $namespace The namespace of the client
*
* @return ClientBuilder
*/
public static function factory($namespace = null)
{
return new static($namespace);
}
/**
* Constructs a client builder
*
* @param string $namespace The namespace of the client
*/
public function __construct($namespace = null)
{
$this->clientNamespace = $namespace;
// Determine service and class name
$this->clientClass = 'Aws\Common\Client\DefaultClient';
if ($this->clientNamespace) {
$this->serviceName = substr($this->clientNamespace, strrpos($this->clientNamespace, '\\') + 1);
$this->clientClass = $this->clientNamespace . '\\' . $this->serviceName . 'Client';
}
}
/**
* Sets the config options
*
* @param array|Collection $config The config options
*
* @return ClientBuilder
*/
public function setConfig($config)
{
$this->config = $this->processArray($config);
return $this;
}
/**
* Sets the config options' defaults
*
* @param array|Collection $defaults The default values
*
* @return ClientBuilder
*/
public function setConfigDefaults($defaults)
{
$this->configDefaults = $this->processArray($defaults);
return $this;
}
/**
* Sets the required config options
*
* @param array|Collection $required The required config options
*
* @return ClientBuilder
*/
public function setConfigRequirements($required)
{
$this->configRequirements = $this->processArray($required);
return $this;
}
/**
* Sets the exception parser. If one is not provided the builder will use
* the default XML exception parser.
*
* @param ExceptionParserInterface $parser The exception parser
*
* @return ClientBuilder
*/
public function setExceptionParser(ExceptionParserInterface $parser)
{
$this->exceptionParser = $parser;
return $this;
}
/**
* Set the configuration for the client's iterators
*
* @param array $config Configuration data for client's iterators
*
* @return ClientBuilder
*/
public function setIteratorsConfig(array $config)
{
$this->iteratorsConfig = $config;
return $this;
}
/**
* Performs the building logic using all of the parameters that have been
* set and falling back to default values. Returns an instantiate service
* client with credentials prepared and plugins attached.
*
* @return AwsClientInterface
* @throws InvalidArgumentException
*/
public function build()
{
// Resolve configuration
$config = Collection::fromConfig(
$this->config,
array_merge(self::$commonConfigDefaults, $this->configDefaults),
(self::$commonConfigRequirements + $this->configRequirements)
);
if ($config[Options::VERSION] === 'latest') {
$config[Options::VERSION] = constant("{$this->clientClass}::LATEST_API_VERSION");
}
if (!isset($config['endpoint_provider'])) {
$config['endpoint_provider'] = RulesEndpointProvider::fromDefaults();
}
// Resolve the endpoint, signature, and credentials
$description = $this->updateConfigFromDescription($config);
$signature = $this->getSignature($description, $config);
$credentials = $this->getCredentials($config);
$this->extractHttpConfig($config);
// Resolve exception parser
if (!$this->exceptionParser) {
$this->exceptionParser = new DefaultXmlExceptionParser();
}
// Resolve backoff strategy
$backoff = $config->get(Options::BACKOFF);
if ($backoff === null) {
$retries = isset($config[Options::BACKOFF_RETRIES]) ? $config[Options::BACKOFF_RETRIES] : 3;
$backoff = $this->createDefaultBackoff($retries);
$config->set(Options::BACKOFF, $backoff);
}
if ($backoff) {
$this->addBackoffLogger($backoff, $config);
}
/** @var AwsClientInterface $client */
$client = new $this->clientClass($credentials, $signature, $config);
$client->setDescription($description);
// Add exception marshaling so that more descriptive exception are thrown
if ($this->clientNamespace) {
$exceptionFactory = new NamespaceExceptionFactory(
$this->exceptionParser,
"{$this->clientNamespace}\\Exception",
"{$this->clientNamespace}\\Exception\\{$this->serviceName}Exception"
);
$client->addSubscriber(new ExceptionListener($exceptionFactory));
}
// Add the UserAgentPlugin to append to the User-Agent header of requests
$client->addSubscriber(new UserAgentListener());
// Filters used for the cache plugin
$client->getConfig()->set(
'params.cache.key_filter',
'header=date,x-amz-date,x-amz-security-token,x-amzn-authorization'
);
// Set the iterator resource factory based on the provided iterators config
$client->setResourceIteratorFactory(new AwsResourceIteratorFactory(
$this->iteratorsConfig,
new ResourceIteratorClassFactory($this->clientNamespace . '\\Iterator')
));
// Disable parameter validation if needed
if ($config->get(Options::VALIDATION) === false) {
$params = $config->get('command.params') ?: array();
$params['command.disable_validation'] = true;
$config->set('command.params', $params);
}
return $client;
}
/**
* Add backoff logging to the backoff plugin if needed
*
* @param BackoffPlugin $plugin Backoff plugin
* @param Collection $config Configuration settings
*
* @throws InvalidArgumentException
*/
protected function addBackoffLogger(BackoffPlugin $plugin, Collection $config)
{
// The log option can be set to `debug` or an instance of a LogAdapterInterface
if ($logger = $config->get(Options::BACKOFF_LOGGER)) {
$format = $config->get(Options::BACKOFF_LOGGER_TEMPLATE);
if ($logger === 'debug') {
$logger = new ClosureLogAdapter(function ($message) {
trigger_error($message . "\n");
});
} elseif (!($logger instanceof LogAdapterInterface)) {
throw new InvalidArgumentException(
Options::BACKOFF_LOGGER . ' must be set to `debug` or an instance of '
. 'Guzzle\\Common\\Log\\LogAdapterInterface'
);
}
// Create the plugin responsible for logging exponential backoff retries
$logPlugin = new BackoffLogger($logger);
// You can specify a custom format or use the default
if ($format) {
$logPlugin->setTemplate($format);
}
$plugin->addSubscriber($logPlugin);
}
}
/**
* Ensures that an array (e.g. for config data) is actually in array form
*
* @param array|Collection $array The array data
*
* @return array
* @throws InvalidArgumentException if the arg is not an array or Collection
*/
protected function processArray($array)
{
if ($array instanceof Collection) {
$array = $array->getAll();
}
if (!is_array($array)) {
throw new InvalidArgumentException('The config must be provided as an array or Collection.');
}
return $array;
}
/**
* Update a configuration object from a service description
*
* @param Collection $config Config to update
*
* @return ServiceDescription
* @throws InvalidArgumentException
*/
protected function updateConfigFromDescription(Collection $config)
{
$description = $config->get(Options::SERVICE_DESCRIPTION);
if (!($description instanceof ServiceDescription)) {
// Inject the version into the sprintf template if it is a string
if (is_string($description)) {
$description = sprintf($description, $config->get(Options::VERSION));
}
$description = ServiceDescription::factory($description);
$config->set(Options::SERVICE_DESCRIPTION, $description);
}
if (!$config->get(Options::SERVICE)) {
$config->set(Options::SERVICE, $description->getData('endpointPrefix'));
}
if ($iterators = $description->getData('iterators')) {
$this->setIteratorsConfig($iterators);
}
$this->handleRegion($config);
$this->handleEndpoint($config);
return $description;
}
/**
* Return an appropriate signature object for a a client based on the
* "signature" configuration setting, or the default signature specified in
* a service description. The signature can be set to a valid signature
* version identifier string or an instance of Aws\Common\Signature\SignatureInterface.
*
* @param ServiceDescription $description Description that holds a signature option
* @param Collection $config Configuration options
*
* @return SignatureInterface
* @throws InvalidArgumentException
*/
protected function getSignature(ServiceDescription $description, Collection $config)
{
// If a custom signature has not been provided, then use the default
// signature setting specified in the service description.
$signature = $config->get(Options::SIGNATURE) ?: $description->getData('signatureVersion');
if (is_string($signature)) {
if ($signature == 'v4') {
$signature = new SignatureV4();
} elseif ($signature == 'v2') {
$signature = new SignatureV2();
} elseif ($signature == 'v3https') {
$signature = new SignatureV3Https();
} else {
throw new InvalidArgumentException("Invalid signature type: {$signature}");
}
} elseif (!($signature instanceof SignatureInterface)) {
throw new InvalidArgumentException('The provided signature is not '
. 'a signature version string or an instance of '
. 'Aws\\Common\\Signature\\SignatureInterface');
}
// Allow a custom service name or region value to be provided
if ($signature instanceof EndpointSignatureInterface) {
// Determine the service name to use when signing
$signature->setServiceName($config->get(Options::SIGNATURE_SERVICE)
?: $description->getData('signingName')
?: $description->getData('endpointPrefix'));
// Determine the region to use when signing requests
$signature->setRegionName($config->get(Options::SIGNATURE_REGION) ?: $config->get(Options::REGION));
}
return $signature;
}
protected function getCredentials(Collection $config)
{
$credentials = $config->get(Options::CREDENTIALS);
if (is_array($credentials)) {
$credentials = Credentials::factory($credentials);
} elseif ($credentials === false) {
$credentials = new NullCredentials();
} elseif (!$credentials instanceof CredentialsInterface) {
$credentials = Credentials::factory($config);
}
return $credentials;
}
private function handleRegion(Collection $config)
{
// Make sure a valid region is set
$region = $config[Options::REGION];
$description = $config[Options::SERVICE_DESCRIPTION];
$global = $description->getData('globalEndpoint');
if (!$global && !$region) {
throw new InvalidArgumentException(
'A region is required when using ' . $description->getData('serviceFullName')
);
} elseif ($global && !$region) {
$config[Options::REGION] = 'us-east-1';
}
}
private function handleEndpoint(Collection $config)
{
// Alias "endpoint" with "base_url" for forwards compatibility.
if ($config['endpoint']) {
$config[Options::BASE_URL] = $config['endpoint'];
return;
}
if ($config[Options::BASE_URL]) {
return;
}
$endpoint = call_user_func(
$config['endpoint_provider'],
array(
'scheme' => $config[Options::SCHEME],
'region' => $config[Options::REGION],
'service' => $config[Options::SERVICE]
)
);
$config[Options::BASE_URL] = $endpoint['endpoint'];
// Set a signature if one was not explicitly provided.
if (!$config->hasKey(Options::SIGNATURE)
&& isset($endpoint['signatureVersion'])
) {
$config->set(Options::SIGNATURE, $endpoint['signatureVersion']);
}
// The the signing region if endpoint rule specifies one.
if (isset($endpoint['credentialScope'])) {
$scope = $endpoint['credentialScope'];
if (isset($scope['region'])) {
$config->set(Options::SIGNATURE_REGION, $scope['region']);
}
}
}
private function createDefaultBackoff($retries = 3)
{
return new BackoffPlugin(
// Retry failed requests up to 3 times if it is determined that the request can be retried
new TruncatedBackoffStrategy($retries,
// Retry failed requests with 400-level responses due to throttling
new ThrottlingErrorChecker($this->exceptionParser,
// Retry failed requests due to transient network or cURL problems
new CurlBackoffStrategy(null,
// Retry failed requests with 500-level responses
new HttpBackoffStrategy(array(500, 503, 509),
// Retry requests that failed due to expired credentials
new ExpiredCredentialsChecker($this->exceptionParser,
new ExponentialBackoffStrategy()
)
)
)
)
)
);
}
private function extractHttpConfig(Collection $config)
{
$http = $config['http'];
if (!is_array($http)) {
return;
}
if (isset($http['verify'])) {
$config[Options::SSL_CERT] = $http['verify'];
}
}
}
@@ -0,0 +1,67 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Client;
use Aws\Common\Enum\ClientOptions as Options;
use Guzzle\Common\Collection;
/**
* Generic client for interacting with an AWS service
*/
class DefaultClient extends AbstractClient
{
/**
* Factory method to create a default client using an array of configuration options.
*
* The following array keys and values are available options:
*
* Credential options ((`key`, `secret`, and optional `token`) OR `credentials` is required):
*
* - key: AWS Access Key ID
* - secret: AWS secret access key
* - credentials: You can optionally provide a custom `Aws\Common\Credentials\CredentialsInterface` object
* - token: Custom AWS security token to use with request authentication. Please note that not all services accept temporary credentials. See http://docs.aws.amazon.com/STS/latest/UsingSTS/UsingTokens.html
* - token.ttd: UNIX timestamp for when the custom credentials expire
* - credentials.cache.key: Optional custom cache key to use with the credentials
* - credentials.client: Pass this option to specify a custom `Guzzle\Http\ClientInterface` to use if your credentials require a HTTP request (e.g. RefreshableInstanceProfileCredentials)
*
* Region and endpoint options (Some services do not require a region while others do. Check the service specific user guide documentation for details):
*
* - region: Region name (e.g. 'us-east-1', 'us-west-1', 'us-west-2', 'eu-west-1', etc...)
* - scheme: URI Scheme of the base URL (e.g. 'https', 'http') used when endpoint is not supplied
* - endpoint: Allows you to specify a custom endpoint instead of building one from the region and scheme
*
* Generic client options:
*
* - signature: Overrides the signature used by the client. Clients will always choose an appropriate default signature. However, it can be useful to override this with a custom setting. This can be set to "v4", "v3https", "v2" or an instance of Aws\Common\Signature\SignatureInterface.
* - ssl.certificate_authority: Set to true to use the bundled CA cert or pass the full path to an SSL certificate bundle
* - curl.options: Associative of CURLOPT_* cURL options to add to each request
* - client.backoff.logger: `Guzzle\Log\LogAdapterInterface` object used to log backoff retries. Use 'debug' to emit PHP warnings when a retry is issued.
* - client.backoff.logger.template: Optional template to use for exponential backoff log messages. See `Guzzle\Plugin\Backoff\BackoffLogger` for formatting information.
*
* @param array|Collection $config Client configuration data
*
* @return self
*/
public static function factory($config = array())
{
return ClientBuilder::factory()
->setConfig($config)
->setConfigDefaults(array(Options::SCHEME => 'https'))
->build();
}
}
@@ -0,0 +1,80 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Client;
use Aws\Common\Credentials\AbstractRefreshableCredentials;
use Aws\Common\Client\AwsClientInterface;
use Aws\Common\Exception\Parser\ExceptionParserInterface;
use Guzzle\Http\Exception\HttpException;
use Guzzle\Http\Message\RequestInterface;
use Guzzle\Http\Message\Response;
use Guzzle\Plugin\Backoff\BackoffStrategyInterface;
use Guzzle\Plugin\Backoff\AbstractBackoffStrategy;
/**
* Backoff logic that handles retrying requests when credentials expire
*/
class ExpiredCredentialsChecker extends AbstractBackoffStrategy
{
/**
* @var array Array of known retrying exception codes
*/
protected $retryable = array(
'RequestExpired' => true,
'ExpiredTokenException' => true,
'ExpiredToken' => true
);
/**
* @var ExceptionParserInterface Exception parser used to parse exception responses
*/
protected $exceptionParser;
public function __construct(ExceptionParserInterface $exceptionParser, BackoffStrategyInterface $next = null) {
$this->exceptionParser = $exceptionParser;
$this->next = $next;
}
public function makesDecision()
{
return true;
}
protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null)
{
if ($response && $response->isClientError()) {
$parts = $this->exceptionParser->parse($request, $response);
if (!isset($this->retryable[$parts['code']]) || !$request->getClient()) {
return null;
}
/** @var AwsClientInterface $client */
$client = $request->getClient();
// Only retry if the credentials can be refreshed
if (!($client->getCredentials() instanceof AbstractRefreshableCredentials)) {
return null;
}
// Resign the request using new credentials
$client->getSignature()->signRequest($request, $client->getCredentials()->setExpiration(-1));
// Retry immediately with no delay
return 0;
}
}
}
@@ -0,0 +1,75 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Client;
use Aws\Common\Exception\Parser\ExceptionParserInterface;
use Guzzle\Http\Exception\HttpException;
use Guzzle\Http\Message\RequestInterface;
use Guzzle\Http\Message\Response;
use Guzzle\Plugin\Backoff\BackoffStrategyInterface;
use Guzzle\Plugin\Backoff\AbstractBackoffStrategy;
/**
* Backoff logic that handles throttling exceptions from services
*/
class ThrottlingErrorChecker extends AbstractBackoffStrategy
{
/** @var array Whitelist of exception codes (as indexes) that indicate throttling */
protected static $throttlingExceptions = array(
'RequestLimitExceeded' => true,
'Throttling' => true,
'ThrottlingException' => true,
'ProvisionedThroughputExceededException' => true,
'RequestThrottled' => true,
);
/**
* @var ExceptionParserInterface Exception parser used to parse exception responses
*/
protected $exceptionParser;
public function __construct(ExceptionParserInterface $exceptionParser, BackoffStrategyInterface $next = null)
{
$this->exceptionParser = $exceptionParser;
if ($next) {
$this->setNext($next);
}
}
/**
* {@inheritdoc}
*/
public function makesDecision()
{
return true;
}
/**
* {@inheritdoc}
*/
protected function getDelay(
$retries,
RequestInterface $request,
Response $response = null,
HttpException $e = null
) {
if ($response && $response->isClientError()) {
$parts = $this->exceptionParser->parse($request, $response);
return isset(self::$throttlingExceptions[$parts['code']]) ? true : null;
}
}
}
@@ -0,0 +1,95 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Client;
use Aws\Common\Exception\InvalidArgumentException;
use Guzzle\Common\Event;
use Guzzle\Http\EntityBody;
use Guzzle\Service\Command\AbstractCommand as Command;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Prepares the body parameter of a command such that the parameter is more flexible (e.g. accepts file handles) with
* the value it accepts but converts it to the correct format for the command. Also looks for a "Filename" parameter.
*/
class UploadBodyListener implements EventSubscriberInterface
{
/**
* @var array The names of the commands of which to modify the body parameter
*/
protected $commands;
/**
* @var string The key for the upload body parameter
*/
protected $bodyParameter;
/**
* @var string The key for the source file parameter
*/
protected $sourceParameter;
/**
* @param array $commands The commands to modify
* @param string $bodyParameter The key for the body parameter
* @param string $sourceParameter The key for the source file parameter
*/
public function __construct(array $commands, $bodyParameter = 'Body', $sourceParameter = 'SourceFile')
{
$this->commands = $commands;
$this->bodyParameter = (string) $bodyParameter;
$this->sourceParameter = (string) $sourceParameter;
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents()
{
return array('command.before_prepare' => array('onCommandBeforePrepare'));
}
/**
* Converts filenames and file handles into EntityBody objects before the command is validated
*
* @param Event $event Event emitted
* @throws InvalidArgumentException
*/
public function onCommandBeforePrepare(Event $event)
{
/** @var Command $command */
$command = $event['command'];
if (in_array($command->getName(), $this->commands)) {
// Get the interesting parameters
$source = $command->get($this->sourceParameter);
$body = $command->get($this->bodyParameter);
// If a file path is passed in then get the file handle
if (is_string($source) && file_exists($source)) {
$body = fopen($source, 'r');
}
// Prepare the body parameter and remove the source file parameter
if (null !== $body) {
$command->remove($this->sourceParameter);
$command->set($this->bodyParameter, EntityBody::factory($body));
} else {
throw new InvalidArgumentException("You must specify a non-null value for the {$this->bodyParameter} or {$this->sourceParameter} parameters.");
}
}
}
}
@@ -0,0 +1,61 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Client;
use Guzzle\Common\Event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Listener used to append strings to the User-Agent header of a request based
* on the `ua.append` option. `ua.append` can contain a string or array of values.
*/
class UserAgentListener implements EventSubscriberInterface
{
/**
* @var string Option used to store User-Agent modifiers
*/
const OPTION = 'ua.append';
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents()
{
return array('command.before_send' => 'onBeforeSend');
}
/**
* Adds strings to the User-Agent header using the `ua.append` parameter of a command
*
* @param Event $event Event emitted
*/
public function onBeforeSend(Event $event)
{
$command = $event['command'];
if ($userAgentAppends = $command->get(self::OPTION)) {
$request = $command->getRequest();
$userAgent = (string) $request->getHeader('User-Agent');
foreach ((array) $userAgentAppends as $append) {
$append = ' ' . $append;
if (strpos($userAgent, $append) === false) {
$userAgent .= $append;
}
}
$request->setHeader('User-Agent', $userAgent);
}
}
}
@@ -0,0 +1,120 @@
<?php
namespace Aws\Common\Command;
use Guzzle\Http\Message\RequestInterface;
use Guzzle\Service\Description\Parameter;
use Guzzle\Service\Command\CommandInterface;
use Guzzle\Service\Command\LocationVisitor\Request\AbstractRequestVisitor;
/**
* Location visitor used to serialize AWS query parameters (e.g. EC2, SES, SNS, SQS, etc) as POST fields
*/
class AwsQueryVisitor extends AbstractRequestVisitor
{
private $fqname;
public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
{
$this->fqname = $command->getName();
$query = array();
$this->customResolver($value, $param, $query, $param->getWireName());
$request->addPostFields($query);
}
/**
* Map nested parameters into the location_key based parameters
*
* @param array $value Value to map
* @param Parameter $param Parameter that holds information about the current key
* @param array $query Built up query string values
* @param string $prefix String to prepend to sub query values
*/
protected function customResolver($value, Parameter $param, array &$query, $prefix = '')
{
switch ($param->getType()) {
case 'object':
$this->resolveObject($param, $value, $prefix, $query);
break;
case 'array':
$this->resolveArray($param, $value, $prefix, $query);
break;
default:
$query[$prefix] = $param->filter($value);
}
}
/**
* Custom handling for objects
*
* @param Parameter $param Parameter for the object
* @param array $value Value that is set for this parameter
* @param string $prefix Prefix for the resulting key
* @param array $query Query string array passed by reference
*/
protected function resolveObject(Parameter $param, array $value, $prefix, array &$query)
{
// Maps are implemented using additional properties
$hasAdditionalProperties = ($param->getAdditionalProperties() instanceof Parameter);
$additionalPropertyCount = 0;
foreach ($value as $name => $v) {
if ($subParam = $param->getProperty($name)) {
// if the parameter was found by name as a regular property
$key = $prefix . '.' . $subParam->getWireName();
$this->customResolver($v, $subParam, $query, $key);
} elseif ($hasAdditionalProperties) {
// Handle map cases like &Attribute.1.Name=<name>&Attribute.1.Value=<value>
$additionalPropertyCount++;
$data = $param->getData();
$keyName = isset($data['keyName']) ? $data['keyName'] : 'key';
$valueName = isset($data['valueName']) ? $data['valueName'] : 'value';
$query["{$prefix}.{$additionalPropertyCount}.{$keyName}"] = $name;
$newPrefix = "{$prefix}.{$additionalPropertyCount}.{$valueName}";
if (is_array($v)) {
$this->customResolver($v, $param->getAdditionalProperties(), $query, $newPrefix);
} else {
$query[$newPrefix] = $param->filter($v);
}
}
}
}
/**
* Custom handling for arrays
*
* @param Parameter $param Parameter for the object
* @param array $value Value that is set for this parameter
* @param string $prefix Prefix for the resulting key
* @param array $query Query string array passed by reference
*/
protected function resolveArray(Parameter $param, array $value, $prefix, array &$query)
{
static $serializeEmpty = array(
'SetLoadBalancerPoliciesForBackendServer' => 1,
'SetLoadBalancerPoliciesOfListener' => 1,
'UpdateStack' => 1
);
// For BC, serialize empty lists for specific operations
if (!$value) {
if (isset($serializeEmpty[$this->fqname])) {
if (substr($prefix, -7) === '.member') {
$prefix = substr($prefix, 0, -7);
}
$query[$prefix] = '';
}
return;
}
$offset = $param->getData('offset') ?: 1;
foreach ($value as $index => $v) {
$index += $offset;
if (is_array($v) && $items = $param->getItems()) {
$this->customResolver($v, $items, $query, $prefix . '.' . $index);
} else {
$query[$prefix . '.' . $index] = $param->filter($v);
}
}
}
}
@@ -0,0 +1,47 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Command;
use Guzzle\Service\Command\OperationCommand;
use Guzzle\Http\Curl\CurlHandle;
/**
* Adds AWS JSON body functionality to dynamically generated HTTP requests
*/
class JsonCommand extends OperationCommand
{
/**
* {@inheritdoc}
*/
protected function build()
{
parent::build();
// Ensure that the body of the request ALWAYS includes some JSON. By default, this is an empty object.
if (!$this->request->getBody()) {
$this->request->setBody('{}');
}
// Never send the Expect header when interacting with a JSON query service
$this->request->removeHeader('Expect');
// Always send JSON requests as a raw string rather than using streams to avoid issues with
// cURL error code 65: "necessary data rewind wasn't possible".
// This could be removed after PHP addresses https://bugs.php.net/bug.php?id=47204
$this->request->getCurlOptions()->set(CurlHandle::BODY_AS_STRING, true);
}
}
@@ -0,0 +1,53 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Command;
use Guzzle\Service\Command\OperationCommand;
/**
* Adds AWS Query service serialization
*/
class QueryCommand extends OperationCommand
{
/**
* @var AwsQueryVisitor
*/
protected static $queryVisitor;
/**
* @var XmlResponseLocationVisitor
*/
protected static $xmlVisitor;
/**
* Register the aws.query visitor
*/
protected function init()
{
// @codeCoverageIgnoreStart
if (!self::$queryVisitor) {
self::$queryVisitor = new AwsQueryVisitor();
}
if (!self::$xmlVisitor) {
self::$xmlVisitor = new XmlResponseLocationVisitor();
}
// @codeCoverageIgnoreEnd
$this->getRequestSerializer()->addVisitor('aws.query', self::$queryVisitor);
$this->getResponseParser()->addVisitor('xml', self::$xmlVisitor);
}
}
@@ -0,0 +1,74 @@
<?php
namespace Aws\Common\Command;
use Guzzle\Service\Description\Operation;
use Guzzle\Service\Command\CommandInterface;
use Guzzle\Http\Message\Response;
use Guzzle\Service\Description\Parameter;
use Guzzle\Service\Command\LocationVisitor\Response\XmlVisitor;
/**
* Class used for custom AWS XML response parsing of query services
*/
class XmlResponseLocationVisitor extends XmlVisitor
{
/**
* {@inheritdoc}
*/
public function before(CommandInterface $command, array &$result)
{
parent::before($command, $result);
// Unwrapped wrapped responses
$operation = $command->getOperation();
if ($operation->getServiceDescription()->getData('resultWrapped')) {
$wrappingNode = $operation->getName() . 'Result';
if (isset($result[$wrappingNode])) {
$result = $result[$wrappingNode] + $result;
unset($result[$wrappingNode]);
}
}
}
/**
* Accounts for wrapper nodes
* {@inheritdoc}
*/
public function visit(
CommandInterface $command,
Response $response,
Parameter $param,
&$value,
$context = null
) {
parent::visit($command, $response, $param, $value, $context);
// Account for wrapper nodes (e.g. RDS, ElastiCache, etc)
if ($param->getData('wrapper')) {
$wireName = $param->getWireName();
$value += $value[$wireName];
unset($value[$wireName]);
}
}
/**
* Filter used when converting XML maps into associative arrays in service descriptions
*
* @param array $value Value to filter
* @param string $entryName Name of each entry
* @param string $keyName Name of each key
* @param string $valueName Name of each value
*
* @return array Returns the map of the XML data
*/
public static function xmlMap($value, $entryName, $keyName, $valueName)
{
$result = array();
foreach ($value as $entry) {
$result[$entry[$keyName]] = $entry[$valueName];
}
return $result;
}
}
@@ -0,0 +1,136 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Credentials;
/**
* Abstract credentials decorator
*/
class AbstractCredentialsDecorator implements CredentialsInterface
{
/**
* @var CredentialsInterface Wrapped credentials object
*/
protected $credentials;
/**
* Constructs a new BasicAWSCredentials object, with the specified AWS
* access key and AWS secret key
*
* @param CredentialsInterface $credentials
*/
public function __construct(CredentialsInterface $credentials)
{
$this->credentials = $credentials;
}
/**
* {@inheritdoc}
*/
public function serialize()
{
return $this->credentials->serialize();
}
/**
* {@inheritdoc}
*/
public function unserialize($serialized)
{
$this->credentials = new Credentials('', '');
$this->credentials->unserialize($serialized);
}
/**
* {@inheritdoc}
*/
public function getAccessKeyId()
{
return $this->credentials->getAccessKeyId();
}
/**
* {@inheritdoc}
*/
public function getSecretKey()
{
return $this->credentials->getSecretKey();
}
/**
* {@inheritdoc}
*/
public function getSecurityToken()
{
return $this->credentials->getSecurityToken();
}
/**
* {@inheritdoc}
*/
public function getExpiration()
{
return $this->credentials->getExpiration();
}
/**
* {@inheritdoc}
*/
public function isExpired()
{
return $this->credentials->isExpired();
}
/**
* {@inheritdoc}
*/
public function setAccessKeyId($key)
{
$this->credentials->setAccessKeyId($key);
return $this;
}
/**
* {@inheritdoc}
*/
public function setSecretKey($secret)
{
$this->credentials->setSecretKey($secret);
return $this;
}
/**
* {@inheritdoc}
*/
public function setSecurityToken($token)
{
$this->credentials->setSecurityToken($token);
return $this;
}
/**
* {@inheritdoc}
*/
public function setExpiration($timestamp)
{
$this->credentials->setExpiration($timestamp);
return $this;
}
}
@@ -0,0 +1,95 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Credentials;
/**
* Abstract decorator to provide a foundation for refreshable credentials
*/
abstract class AbstractRefreshableCredentials extends AbstractCredentialsDecorator
{
/**
* Get the underlying credentials, refreshing if necessary.
*
* @return Credentials
*/
public function getCredentials()
{
if ($this->credentials->isExpired()) {
$this->refresh();
}
return new Credentials(
$this->credentials->getAccessKeyId(),
$this->credentials->getSecretKey(),
$this->credentials->getSecurityToken(),
$this->credentials->getExpiration()
);
}
/**
* {@inheritdoc}
*/
public function getAccessKeyId()
{
if ($this->credentials->isExpired()) {
$this->refresh();
}
return $this->credentials->getAccessKeyId();
}
/**
* {@inheritdoc}
*/
public function getSecretKey()
{
if ($this->credentials->isExpired()) {
$this->refresh();
}
return $this->credentials->getSecretKey();
}
/**
* {@inheritdoc}
*/
public function getSecurityToken()
{
if ($this->credentials->isExpired()) {
$this->refresh();
}
return $this->credentials->getSecurityToken();
}
/**
* {@inheritdoc}
*/
public function serialize()
{
if ($this->credentials->isExpired()) {
$this->refresh();
}
return $this->credentials->serialize();
}
/**
* Attempt to get new credentials
*/
abstract protected function refresh();
}
@@ -0,0 +1,74 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Credentials;
use Guzzle\Cache\CacheAdapterInterface;
/**
* Credentials decorator used to implement caching credentials
*/
class CacheableCredentials extends AbstractRefreshableCredentials
{
/**
* @var CacheAdapterInterface Cache adapter used to store credentials
*/
protected $cache;
/**
* @var string Cache key used to store the credentials
*/
protected $cacheKey;
/**
* CacheableCredentials is a decorator that decorates other credentials
*
* @param CredentialsInterface $credentials Credentials to adapt
* @param CacheAdapterInterface $cache Cache to use to store credentials
* @param string $cacheKey Cache key of the credentials
*/
public function __construct(CredentialsInterface $credentials, CacheAdapterInterface $cache, $cacheKey)
{
$this->cache = $cache;
$this->cacheKey = $cacheKey;
parent::__construct($credentials);
}
/**
* Attempt to get new credentials from cache or from the adapted object
*/
protected function refresh()
{
if (!$cache = $this->cache->fetch($this->cacheKey)) {
// The credentials were not found, so try again and cache if new
$this->credentials->getAccessKeyId();
if (!$this->credentials->isExpired()) {
// The credentials were updated, so cache them
$this->cache->save($this->cacheKey, $this->credentials, $this->credentials->getExpiration() - time());
}
} else {
// The credentials were found in cache, so update the adapter object
// if the cached credentials are not expired
if (!$cache->isExpired()) {
$this->credentials->setAccessKeyId($cache->getAccessKeyId());
$this->credentials->setSecretKey($cache->getSecretKey());
$this->credentials->setSecurityToken($cache->getSecurityToken());
$this->credentials->setExpiration($cache->getExpiration());
}
}
}
}
@@ -0,0 +1,352 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Credentials;
use Aws\Common\Enum\ClientOptions as Options;
use Aws\Common\Exception\InvalidArgumentException;
use Aws\Common\Exception\RequiredExtensionNotLoadedException;
use Aws\Common\Exception\RuntimeException;
use Guzzle\Common\FromConfigInterface;
use Guzzle\Cache\CacheAdapterInterface;
use Guzzle\Cache\DoctrineCacheAdapter;
use Guzzle\Common\Collection;
/**
* Basic implementation of the AWSCredentials interface that allows callers to
* pass in the AWS access key and secret access in the constructor.
*/
class Credentials implements CredentialsInterface, FromConfigInterface
{
const ENV_KEY = 'AWS_ACCESS_KEY_ID';
const ENV_SECRET = 'AWS_SECRET_KEY';
const ENV_SECRET_ACCESS_KEY = 'AWS_SECRET_ACCESS_KEY';
const ENV_PROFILE = 'AWS_PROFILE';
/** @var string AWS Access Key ID */
protected $key;
/** @var string AWS Secret Access Key */
protected $secret;
/** @var string AWS Security Token */
protected $token;
/** @var int Time to die of token */
protected $ttd;
/**
* Get the available keys for the factory method
*
* @return array
*/
public static function getConfigDefaults()
{
return array(
Options::KEY => null,
Options::SECRET => null,
Options::TOKEN => null,
Options::TOKEN_TTD => null,
Options::PROFILE => null,
Options::CREDENTIALS_CACHE => null,
Options::CREDENTIALS_CACHE_KEY => null,
Options::CREDENTIALS_CLIENT => null
);
}
/**
* Factory method for creating new credentials. This factory method will
* create the appropriate credentials object with appropriate decorators
* based on the passed configuration options.
*
* @param array $config Options to use when instantiating the credentials
*
* @return CredentialsInterface
* @throws InvalidArgumentException If the caching options are invalid
* @throws RuntimeException If using the default cache and APC is disabled
*/
public static function factory($config = array())
{
// Add default key values
foreach (self::getConfigDefaults() as $key => $value) {
if (!isset($config[$key])) {
$config[$key] = $value;
}
}
// Set up the cache
$cache = $config[Options::CREDENTIALS_CACHE];
$cacheKey = $config[Options::CREDENTIALS_CACHE_KEY] ?:
'credentials_' . ($config[Options::KEY] ?: crc32(gethostname()));
if (
$cacheKey &&
$cache instanceof CacheAdapterInterface &&
$cached = self::createFromCache($cache, $cacheKey)
) {
return $cached;
}
// Create the credentials object
if (!$config[Options::KEY] || !$config[Options::SECRET]) {
$credentials = self::createFromEnvironment($config);
} else {
// Instantiate using short or long term credentials
$credentials = new static(
$config[Options::KEY],
$config[Options::SECRET],
$config[Options::TOKEN],
$config[Options::TOKEN_TTD]
);
}
// Check if the credentials are refreshable, and if so, configure caching
$cache = $config[Options::CREDENTIALS_CACHE];
if ($cacheKey && $cache) {
$credentials = self::createCache($credentials, $cache, $cacheKey);
}
return $credentials;
}
/**
* Create credentials from the credentials ini file in the HOME directory.
*
* @param string|null $profile Pass a specific profile to use. If no
* profile is specified we will attempt to use
* the value specified in the AWS_PROFILE
* environment variable. If AWS_PROFILE is not
* set, the "default" profile is used.
* @param string|null $filename Pass a string to specify the location of the
* credentials files. If null is passed, the
* SDK will attempt to find the configuration
* file at in your HOME directory at
* ~/.aws/credentials.
* @return CredentialsInterface
* @throws \RuntimeException if the file cannot be found, if the file is
* invalid, or if the profile is invalid.
*/
public static function fromIni($profile = null, $filename = null)
{
if (!$filename) {
$filename = self::getHomeDir() . '/.aws/credentials';
}
if (!$profile) {
$profile = self::getEnvVar(self::ENV_PROFILE) ?: 'default';
}
if (!is_readable($filename) || ($data = parse_ini_file($filename, true)) === false) {
throw new \RuntimeException("Invalid AWS credentials file: {$filename}.");
}
if (!isset($data[$profile]['aws_access_key_id']) || !isset($data[$profile]['aws_secret_access_key'])) {
throw new \RuntimeException("Invalid AWS credentials profile {$profile} in {$filename}.");
}
return new self(
$data[$profile]['aws_access_key_id'],
$data[$profile]['aws_secret_access_key'],
isset($data[$profile]['aws_security_token'])
? $data[$profile]['aws_security_token']
: null
);
}
/**
* Constructs a new BasicAWSCredentials object, with the specified AWS
* access key and AWS secret key
*
* @param string $accessKeyId AWS access key ID
* @param string $secretAccessKey AWS secret access key
* @param string $token Security token to use
* @param int $expiration UNIX timestamp for when credentials expire
*/
public function __construct($accessKeyId, $secretAccessKey, $token = null, $expiration = null)
{
$this->key = trim($accessKeyId);
$this->secret = trim($secretAccessKey);
$this->token = $token;
$this->ttd = $expiration;
}
public function serialize()
{
return json_encode(array(
Options::KEY => $this->key,
Options::SECRET => $this->secret,
Options::TOKEN => $this->token,
Options::TOKEN_TTD => $this->ttd
));
}
public function unserialize($serialized)
{
$data = json_decode($serialized, true);
$this->key = $data[Options::KEY];
$this->secret = $data[Options::SECRET];
$this->token = $data[Options::TOKEN];
$this->ttd = $data[Options::TOKEN_TTD];
}
public function getAccessKeyId()
{
return $this->key;
}
public function getSecretKey()
{
return $this->secret;
}
public function getSecurityToken()
{
return $this->token;
}
public function getExpiration()
{
return $this->ttd;
}
public function isExpired()
{
return $this->ttd !== null && time() >= $this->ttd;
}
public function setAccessKeyId($key)
{
$this->key = $key;
return $this;
}
public function setSecretKey($secret)
{
$this->secret = $secret;
return $this;
}
public function setSecurityToken($token)
{
$this->token = $token;
return $this;
}
public function setExpiration($timestamp)
{
$this->ttd = $timestamp;
return $this;
}
/**
* When no keys are provided, attempt to create them based on the
* environment or instance profile credentials.
*
* @param array|Collection $config
*
* @return CredentialsInterface
*/
private static function createFromEnvironment($config)
{
// Get key and secret from ENV variables
$envKey = self::getEnvVar(self::ENV_KEY);
if (!($envSecret = self::getEnvVar(self::ENV_SECRET))) {
// Use AWS_SECRET_ACCESS_KEY if AWS_SECRET_KEY was not set
$envSecret = self::getEnvVar(self::ENV_SECRET_ACCESS_KEY);
}
// Use credentials from the environment variables if available
if ($envKey && $envSecret) {
return new static($envKey, $envSecret);
}
try {
// Use credentials from the INI file in HOME directory if available
return self::fromIni($config[Options::PROFILE]);
} catch (\RuntimeException $e) {
// Otherwise, try using instance profile credentials (available on EC2 instances)
return new RefreshableInstanceProfileCredentials(
new static('', '', '', 1),
$config[Options::CREDENTIALS_CLIENT]
);
}
}
private static function createFromCache(CacheAdapterInterface $cache, $cacheKey)
{
$cached = $cache->fetch($cacheKey);
if ($cached instanceof CredentialsInterface && !$cached->isExpired()) {
return new CacheableCredentials($cached, $cache, $cacheKey);
}
return null;
}
private static function createCache(CredentialsInterface $credentials, $cache, $cacheKey)
{
if ($cache === 'true' || $cache === true) {
// If no cache adapter was provided, then create one for the user
// @codeCoverageIgnoreStart
if (!extension_loaded('apc')) {
throw new RequiredExtensionNotLoadedException('PHP has not been compiled with APC. Unable to cache '
. 'the credentials.');
} elseif (!class_exists('Doctrine\Common\Cache\ApcCache')) {
throw new RuntimeException(
'Cannot set ' . Options::CREDENTIALS_CACHE . ' to true because the Doctrine cache component is '
. 'not installed. Either install doctrine/cache or pass in an instantiated '
. 'Guzzle\Cache\CacheAdapterInterface object'
);
}
// @codeCoverageIgnoreEnd
$cache = new DoctrineCacheAdapter(new \Doctrine\Common\Cache\ApcCache());
} elseif (!($cache instanceof CacheAdapterInterface)) {
throw new InvalidArgumentException('Unable to utilize caching with the specified options');
}
// Decorate the credentials with a cache
return new CacheableCredentials($credentials, $cache, $cacheKey);
}
private static function getHomeDir()
{
// On Linux/Unix-like systems, use the HOME environment variable
if ($homeDir = self::getEnvVar('HOME')) {
return $homeDir;
}
// Get the HOMEDRIVE and HOMEPATH values for Windows hosts
$homeDrive = self::getEnvVar('HOMEDRIVE');
$homePath = self::getEnvVar('HOMEPATH');
return ($homeDrive && $homePath) ? $homeDrive . $homePath : null;
}
/**
* Fetches the value of an environment variable by checking $_SERVER and getenv().
*
* @param string $var Name of the environment variable
*
* @return mixed|null
*/
private static function getEnvVar($var)
{
return isset($_SERVER[$var]) ? $_SERVER[$var] : getenv($var);
}
}
@@ -0,0 +1,96 @@
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Common\Credentials;
/**
* Provides access to the AWS credentials used for accessing AWS services: AWS
* access key ID, secret access key, and security token. These credentials are
* used to securely sign requests to AWS services.
*/
interface CredentialsInterface extends \Serializable
{
/**
* Returns the AWS access key ID for this credentials object.
*
* @return string
*/
public function getAccessKeyId();
/**
* Returns the AWS secret access key for this credentials object.
*
* @return string
*/
public function getSecretKey();
/**
* Get the associated security token if available
*
* @return string|null
*/
public function getSecurityToken();
/**
* Get the UNIX timestamp in which the credentials will expire
*
* @return int|null
*/
public function getExpiration();
/**
* Set the AWS access key ID for this credentials object.
*
* @param string $key AWS access key ID
*
* @return self
*/
public function setAccessKeyId($key);
/**
* Set the AWS secret access key for this credentials object.
*
* @param string $secret AWS secret access key
*
* @return CredentialsInterface
*/
public function setSecretKey($secret);
/**
* Set the security token to use with this credentials object
*
* @param string $token Security token
*
* @return self
*/
public function setSecurityToken($token);
/**
* Set the UNIX timestamp in which the credentials will expire
*
* @param int $timestamp UNIX timestamp expiration
*
* @return self
*/
public function setExpiration($timestamp);
/**
* Check if the credentials are expired
*
* @return bool
*/
public function isExpired();
}

Some files were not shown because too many files have changed in this diff Show More