示例#1
0
 /**
  * @param string $api_key     API ключ UserEcho
  * @param string $project_key Ключ UserEcho
  * @param array  $user_info
  *
  * @return SSO KEY
  */
 public static function get_sso_token($api_key, $project_key, $user_info)
 {
     $sso_key = '';
     if ($uid = get_uid(false)) {
         $user = new users();
         $user->GetUserByUID($uid);
         $iv = str_shuffle('memoKomo1234QWER');
         $message = array('guid' => $uid, 'expires_date' => gmdate('Y-m-d H:i:s', time() + 86400), 'display_name' => $user->login, 'email' => $user->email, 'locale' => 'ru', 'verified_email' => true);
         // key hash, length = 16
         $key_hash = substr(hash('sha1', $api_key . $project_key, true), 0, 16);
         $message_json = json_encode(encodeCharset('CP1251', 'UTF-8', $message));
         // double XOR first block message_json
         for ($i = 0; $i < 16; ++$i) {
             $message_json[$i] = $message_json[$i] ^ $iv[$i];
         }
         // fill tail of message_json by bytes equaled count empty bytes (to 16)
         $pad = 16 - strlen($message_json) % 16;
         $message_json = $message_json . str_repeat(chr($pad), $pad);
         // encode json
         $cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'cbc', '');
         mcrypt_generic_init($cipher, $key_hash, $iv);
         $encrypted_bytes = mcrypt_generic($cipher, $message_json);
         mcrypt_generic_deinit($cipher);
         // encode bytes to url safe string
         $sso_key = urlencode(base64_encode($encrypted_bytes));
     }
     return $sso_key;
 }
示例#2
0
/**
 * Получить список корреспонденции.
 * 
 * @param int   $type   Тип корреспонденции (Все, Исходящие, Входящие, В обработке, Архив)
 * @param array $filter Данные фильтра
 * @param int   $page   Номер страницы
 * @param int   $nums   Количество документов на странице (0 - все)
 *
 * @return object xajaxResponse
 */
function showLetters($type = 0, $filter = null, $page = 1, $nums = 0)
{
    global $objLetters;
    //    $objResponse = new xajaxResponse();
    if (hasPermissions('letters') && hasPermissions('adm')) {
        $res = array();
        $aData = array();
        $pager_html = '';
        $page = abs(intval($page));
        $page = $page ? $page : 1;
        $nums = abs(intval($nums));
        $filter = iconv('CP1251', 'UTF-8', $filter);
        $filter = stripcslashes($filter);
        $filter = json_decode($filter, true);
        if ($filter) {
            foreach ($filter as $k => $v) {
                $filter[$k] = encodeCharset('UTF-8', 'CP1251', $v);
            }
        }
        $letters = $objLetters->getLetters($type, $filter, $nums, ($page - 1) * $nums);
        $pages = $nums ? intval($objLetters->numsLetters / $nums) + 1 : 1;
        if ($letters) {
            $qstatuses = $objLetters->getStatuses();
            foreach ($qstatuses as $qstatus) {
                $statuses[$qstatus['id']] = $qstatus['title'];
            }
            $statuses[0] = 'Добавить статус';
            $html = '';
            ob_start();
            $letter_num = 1;
            $nn = 0;
            foreach ($letters as $key => $oletter) {
                if ($type == 2 || $type == 6) {
                    $letter['number'] = $letter_num;
                    $ukey = preg_split('/-/', $key);
                    if ($ukey[2] == 't') {
                        $letter['company'] = letters::getCompany($ukey[0]);
                    } else {
                        $letter['recipient'] = letters::getUserReqvs($ukey[0]);
                    }
                    $letter['is_company'] = $ukey[2];
                    $letter['rdelivery_title'] = $oletter[0]['delivery_title'];
                    //require($_SERVER['DOCUMENT_ROOT'].'/siteadmin/letters/tpl.list.header.item.php');
                    foreach ($oletter as $letter) {
                        $letter['number'] = $letter_num;
                        ++$nn;
                        if ($letter['is_user_1_company'] == 't') {
                            $company = letters::getCompany($letter['user_1']);
                            if ($company['frm_type']) {
                                $company['name'] = $company['frm_type'] . ' "' . $company['name'] . '"';
                            }
                            $letter['company1_name'] = $company['name'];
                            $letter['company1'] = $company;
                        } else {
                            $user1 = new users();
                            $user1->GetUserByUID($letter['user_1']);
                            $letter['user1_uname'] = $user1->uname;
                            $letter['user1_usurname'] = $user1->usurname;
                            $letter['user1_login'] = $user1->login;
                            $letter['user1_i'] = letters::getUserReqvs($letter['user_1']);
                        }
                        if ($letter['is_user_2_company'] == 't') {
                            $company = letters::getCompany($letter['user_2']);
                            if ($company['frm_type']) {
                                $company['name'] = $company['frm_type'] . ' "' . $company['name'] . '"';
                            }
                            $letter['company2_name'] = $company['name'];
                            $letter['company2'] = $company;
                        } else {
                            $user2 = new users();
                            $user2->GetUserByUID($letter['user_2']);
                            $letter['user2_uname'] = $user2->uname;
                            $letter['user2_usurname'] = $user2->usurname;
                            $letter['user2_login'] = $user2->login;
                            $letter['user2_i'] = letters::getUserReqvs($letter['user_2']);
                        }
                        if ($letter['user_3']) {
                            if ($letter['is_user_3_company'] == 't') {
                                $company = letters::getCompany($letter['user_3']);
                                if ($company['frm_type']) {
                                    $company['name'] = $company['frm_type'] . ' "' . $company['name'] . '"';
                                }
                                $letter['company3_name'] = $company['name'];
                                $letter['company3'] = $company;
                            } else {
                                $user3 = new users();
                                $user3->GetUserByUID($letter['user_3']);
                                $letter['user3_uname'] = $user3->uname;
                                $letter['user3_usurname'] = $user3->usurname;
                                $letter['user3_login'] = $user3->login;
                                $letter['user3_i'] = letters::getUserReqvs($letter['user_3']);
                            }
                        }
                        if ($letter['file_id']) {
                            $cFile = new CFile($letter['file_id']);
                            $file_link = WDCPREFIX . '/' . $cFile->path . $cFile->name;
                        } else {
                            $file_link = '';
                        }
                        $aTmp = array('id' => iconv('CP1251', 'UTF-8', $letter['id']), 'nn' => iconv('CP1251', 'UTF-8', $nn), 'ukey0' => iconv('CP1251', 'UTF-8', $ukey[0]), 'delivery0' => iconv('CP1251', 'UTF-8', $oletter[0]['delivery']), 'user1_uname' => iconv('CP1251', 'UTF-8', $letter['user1_uname']), 'user1_usurname' => iconv('CP1251', 'UTF-8', $letter['user1_usurname']), 'user1_login' => iconv('CP1251', 'UTF-8', $letter['user1_login']), 'user2_uname' => iconv('CP1251', 'UTF-8', $letter['user2_uname']), 'user2_usurname' => iconv('CP1251', 'UTF-8', $letter['user2_usurname']), 'user2_login' => iconv('CP1251', 'UTF-8', $letter['user2_login']), 'user3_uname' => iconv('CP1251', 'UTF-8', $letter['user3_uname']), 'user3_usurname' => iconv('CP1251', 'UTF-8', $letter['user3_usurname']), 'user3_login' => iconv('CP1251', 'UTF-8', $letter['user3_login']), 'date_change_status' => iconv('CP1251', 'UTF-8', dateFormat('d.m.Y, H:i', $letter['date_change_status'])), 'user_status_1' => iconv('CP1251', 'UTF-8', $letter['user_status_1']), 'user_status_2' => iconv('CP1251', 'UTF-8', $letter['user_status_2']), 'user_status_3' => iconv('CP1251', 'UTF-8', $letter['user_status_3']), 'user_status_1_icon' => letters::$status_icons[intval($letter['user_status_1'])], 'user_status_2_icon' => letters::$status_icons[intval($letter['user_status_2'])], 'user_status_3_icon' => letters::$status_icons[intval($letter['user_status_3'])], 'user_status_1_color' => letters::$status_colors[intval($letter['user_status_1'])], 'user_status_2_color' => letters::$status_colors[intval($letter['user_status_2'])], 'user_status_3_color' => letters::$status_colors[intval($letter['user_status_3'])], 'is_user_1_company' => $letter['is_user_1_company'], 'is_user_2_company' => $letter['is_user_2_company'], 'is_user_3_company' => $letter['is_user_3_company'], 'number' => $letter['number'], 'group_title' => iconv('CP1251', 'UTF-8', reformat(htmlspecialchars($letter['group_title']), 20)), 'group_id' => $letter['group_id'], 'title' => iconv('CP1251', 'UTF-8', reformat(htmlspecialchars($letter['title']), 20)), 'user_1' => $letter['user_1'], 'user_2' => $letter['user_2'], 'user_3' => $letter['user_3'], 'company1_name' => iconv('CP1251', 'UTF-8', $letter['company1_name']), 'company2_name' => iconv('CP1251', 'UTF-8', $letter['company2_name']), 'company3_name' => iconv('CP1251', 'UTF-8', $letter['company3_name']), 'company1_index' => iconv('CP1251', 'UTF-8', $letter['company1']['index']), 'company1_country_title' => iconv('CP1251', 'UTF-8', $letter['company1']['country_title']), 'company1_city_title' => iconv('CP1251', 'UTF-8', $letter['company1']['city_title']), 'company1_address' => iconv('CP1251', 'UTF-8', $letter['company1']['address']), 'user1_i_form_type' => $letter['user1_i']['form_type'], 'user1_i_1_address' => iconv('CP1251', 'UTF-8', $letter['user1_i'][1]['address']), 'user1_i_2_address' => iconv('CP1251', 'UTF-8', $letter['user1_i'][2]['address']), 'user_status_date_1' => dateFormat('d.m.Y', $letter['user_status_date_1']), 'user1_i_1_fio' => iconv('CP1251', 'UTF-8', $letter['user1_i'][1]['fio']), 'user1_i_2_full_name' => iconv('CP1251', 'UTF-8', $letter['user1_i'][2]['full_name']), 'user2_i_1_fio' => iconv('CP1251', 'UTF-8', $letter['user2_i'][1]['fio']), 'user2_i_2_full_name' => iconv('CP1251', 'UTF-8', $letter['user2_i'][2]['full_name']), 'user3_i_1_fio' => iconv('CP1251', 'UTF-8', $letter['user3_i'][1]['fio']), 'user3_i_2_full_name' => iconv('CP1251', 'UTF-8', $letter['user3_i'][2]['full_name']), 'company2_index' => iconv('CP1251', 'UTF-8', $letter['company2']['index']), 'company2_country_title' => iconv('CP1251', 'UTF-8', $letter['company2']['country_title']), 'company2_city_title' => iconv('CP1251', 'UTF-8', $letter['company2']['city_title']), 'company2_address' => iconv('CP1251', 'UTF-8', $letter['company2']['address']), 'user2_i_form_type' => $letter['user2_i']['form_type'], 'user2_i_1_address' => iconv('CP1251', 'UTF-8', $letter['user2_i'][1]['address']), 'user2_i_2_address' => iconv('CP1251', 'UTF-8', $letter['user2_i'][2]['address']), 'user_status_date_2' => dateFormat('d.m.Y', $letter['user_status_date_2']), 'company3_index' => iconv('CP1251', 'UTF-8', $letter['company3']['index']), 'company3_country_title' => iconv('CP1251', 'UTF-8', $letter['company3']['country_title']), 'company3_city_title' => iconv('CP1251', 'UTF-8', $letter['company3']['city_title']), 'company3_address' => iconv('CP1251', 'UTF-8', $letter['company3']['address']), 'user3_i_form_type' => $letter['user3_i']['form_type'], 'user3_i_1_address' => iconv('CP1251', 'UTF-8', $letter['user3_i'][1]['address']), 'user3_i_2_address' => iconv('CP1251', 'UTF-8', $letter['user3_i'][2]['address']), 'user_status_date_3' => dateFormat('d.m.Y', $letter['user_status_date_3']), 'delivery_title' => iconv('CP1251', 'UTF-8', $letter['delivery_title']), 'delivery_cost' => sprintf('%01.2f', $letter['delivery_cost']), 'parent' => $letter['parent'], 'parent_title' => iconv('CP1251', 'UTF-8', reformat(htmlspecialchars($letter['parent_title']), 20)), 'comment' => iconv('CP1251', 'UTF-8', reformat(htmlspecialchars($letter['comment']), 20)), 'file_link' => $file_link, 'withoutourdoc' => $letter['withoutourdoc']);
                        $aData[] = $aTmp;
                    }
                    ++$letter_num;
                } else {
                    if ($oletter['is_user_1_company'] == 't') {
                        $company = letters::getCompany($oletter['user_1']);
                        if ($company['frm_type']) {
                            $company['name'] = $company['frm_type'] . ' "' . $company['name'] . '"';
                        }
                        $oletter['company1_name'] = $company['name'];
                        $oletter['company1'] = $company;
                    } else {
                        $user1 = new users();
                        $user1->GetUserByUID($oletter['user_1']);
                        $oletter['user1_uname'] = $user1->uname;
                        $oletter['user1_usurname'] = $user1->usurname;
                        $oletter['user1_login'] = $user1->login;
                        $oletter['user1_i'] = letters::getUserReqvs($oletter['user_1']);
                    }
                    if ($oletter['is_user_2_company'] == 't') {
                        $company = letters::getCompany($oletter['user_2']);
                        if ($company['frm_type']) {
                            $company['name'] = $company['frm_type'] . ' "' . $company['name'] . '"';
                        }
                        $oletter['company2_name'] = $company['name'];
                        $oletter['company2'] = $company;
                    } else {
                        $user2 = new users();
                        $user2->GetUserByUID($oletter['user_2']);
                        $oletter['user2_uname'] = $user2->uname;
                        $oletter['user2_usurname'] = $user2->usurname;
                        $oletter['user2_login'] = $user2->login;
                        $oletter['user2_i'] = letters::getUserReqvs($oletter['user_2']);
                    }
                    if ($oletter['user_3']) {
                        if ($oletter['is_user_3_company'] == 't') {
                            $company = letters::getCompany($oletter['user_3']);
                            if ($company['frm_type']) {
                                $company['name'] = $company['frm_type'] . ' "' . $company['name'] . '"';
                            }
                            $oletter['company3_name'] = $company['name'];
                            $oletter['company3'] = $company;
                        } else {
                            $user3 = new users();
                            $user3->GetUserByUID($oletter['user_3']);
                            $oletter['user3_uname'] = $user3->uname;
                            $oletter['user3_usurname'] = $user3->usurname;
                            $oletter['user3_login'] = $user3->login;
                            $oletter['user3_i'] = letters::getUserReqvs($oletter['user_3']);
                        }
                    }
                    $letter = $oletter;
                    if ($letter['file_id']) {
                        $cFile = new CFile($letter['file_id']);
                        $file_link = WDCPREFIX . '/' . $cFile->path . $cFile->name;
                    } else {
                        $file_link = '';
                    }
                    $aTmp = array('id' => iconv('CP1251', 'UTF-8', $letter['id']), 'nn' => iconv('CP1251', 'UTF-8', $nn), 'ukey0' => iconv('CP1251', 'UTF-8', $ukey[0]), 'delivery0' => iconv('CP1251', 'UTF-8', $oletter[0]['delivery']), 'user1_uname' => iconv('CP1251', 'UTF-8', $letter['user1_uname']), 'user1_usurname' => iconv('CP1251', 'UTF-8', $letter['user1_usurname']), 'user1_login' => iconv('CP1251', 'UTF-8', $letter['user1_login']), 'user2_uname' => iconv('CP1251', 'UTF-8', $letter['user2_uname']), 'user2_usurname' => iconv('CP1251', 'UTF-8', $letter['user2_usurname']), 'user2_login' => iconv('CP1251', 'UTF-8', $letter['user2_login']), 'user3_uname' => iconv('CP1251', 'UTF-8', $letter['user3_uname']), 'user3_usurname' => iconv('CP1251', 'UTF-8', $letter['user3_usurname']), 'user3_login' => iconv('CP1251', 'UTF-8', $letter['user3_login']), 'date_change_status' => iconv('CP1251', 'UTF-8', dateFormat('d.m.Y, H:i', $letter['date_change_status'])), 'user_status_1' => iconv('CP1251', 'UTF-8', $letter['user_status_1']), 'user_status_2' => iconv('CP1251', 'UTF-8', $letter['user_status_2']), 'user_status_3' => iconv('CP1251', 'UTF-8', $letter['user_status_3']), 'user_status_1_icon' => letters::$status_icons[intval($letter['user_status_1'])], 'user_status_2_icon' => letters::$status_icons[intval($letter['user_status_2'])], 'user_status_3_icon' => letters::$status_icons[intval($letter['user_status_3'])], 'user_status_1_color' => letters::$status_colors[intval($letter['user_status_1'])], 'user_status_2_color' => letters::$status_colors[intval($letter['user_status_2'])], 'user_status_3_color' => letters::$status_colors[intval($letter['user_status_3'])], 'is_user_1_company' => $letter['is_user_1_company'], 'is_user_2_company' => $letter['is_user_2_company'], 'is_user_3_company' => $letter['is_user_3_company'], 'number' => $letter['number'], 'group_title' => iconv('CP1251', 'UTF-8', reformat(htmlspecialchars($letter['group_title']), 20)), 'group_id' => $letter['group_id'], 'title' => iconv('CP1251', 'UTF-8', reformat(htmlspecialchars($letter['title']), 20)), 'user_1' => $letter['user_1'], 'user_2' => $letter['user_2'], 'user_3' => $letter['user_3'], 'company1_name' => iconv('CP1251', 'UTF-8', $letter['company1_name']), 'company2_name' => iconv('CP1251', 'UTF-8', $letter['company2_name']), 'company3_name' => iconv('CP1251', 'UTF-8', $letter['company3_name']), 'company1_index' => iconv('CP1251', 'UTF-8', $letter['company1']['index']), 'company1_country_title' => iconv('CP1251', 'UTF-8', $letter['company1']['country_title']), 'company1_city_title' => iconv('CP1251', 'UTF-8', $letter['company1']['city_title']), 'company1_address' => iconv('CP1251', 'UTF-8', $letter['company1']['address']), 'user1_i_form_type' => $letter['user1_i']['form_type'], 'user1_i_1_address' => iconv('CP1251', 'UTF-8', $letter['user1_i'][1]['address']), 'user1_i_2_address' => iconv('CP1251', 'UTF-8', $letter['user1_i'][2]['address']), 'user_status_date_1' => dateFormat('d.m.Y', $letter['user_status_date_1']), 'user1_i_1_fio' => iconv('CP1251', 'UTF-8', $letter['user1_i'][1]['fio']), 'user1_i_2_full_name' => iconv('CP1251', 'UTF-8', $letter['user1_i'][2]['full_name']), 'user2_i_1_fio' => iconv('CP1251', 'UTF-8', $letter['user2_i'][1]['fio']), 'user2_i_2_full_name' => iconv('CP1251', 'UTF-8', $letter['user2_i'][2]['full_name']), 'user3_i_1_fio' => iconv('CP1251', 'UTF-8', $letter['user3_i'][1]['fio']), 'user3_i_2_full_name' => iconv('CP1251', 'UTF-8', $letter['user3_i'][2]['full_name']), 'company2_index' => iconv('CP1251', 'UTF-8', $letter['company2']['index']), 'company2_country_title' => iconv('CP1251', 'UTF-8', $letter['company2']['country_title']), 'company2_city_title' => iconv('CP1251', 'UTF-8', $letter['company2']['city_title']), 'company2_address' => iconv('CP1251', 'UTF-8', $letter['company2']['address']), 'user2_i_form_type' => $letter['user2_i']['form_type'], 'user2_i_1_address' => iconv('CP1251', 'UTF-8', $letter['user2_i'][1]['address']), 'user2_i_2_address' => iconv('CP1251', 'UTF-8', $letter['user2_i'][2]['address']), 'user_status_date_2' => dateFormat('d.m.Y', $letter['user_status_date_2']), 'company3_index' => iconv('CP1251', 'UTF-8', $letter['company3']['index']), 'company3_country_title' => iconv('CP1251', 'UTF-8', $letter['company3']['country_title']), 'company3_city_title' => iconv('CP1251', 'UTF-8', $letter['company3']['city_title']), 'company3_address' => iconv('CP1251', 'UTF-8', $letter['company3']['address']), 'user3_i_form_type' => $letter['user3_i']['form_type'], 'user3_i_1_address' => iconv('CP1251', 'UTF-8', $letter['user3_i'][1]['address']), 'user3_i_2_address' => iconv('CP1251', 'UTF-8', $letter['user3_i'][2]['address']), 'user_status_date_3' => dateFormat('d.m.Y', $letter['user_status_date_3']), 'delivery_title' => iconv('CP1251', 'UTF-8', $letter['delivery_title']), 'delivery_cost' => sprintf('%01.2f', $letter['delivery_cost']), 'parent' => $letter['parent'], 'parent_title' => iconv('CP1251', 'UTF-8', reformat(htmlspecialchars($letter['parent_title']), 20)), 'comment' => iconv('CP1251', 'UTF-8', reformat(htmlspecialchars($letter['comment']), 20)), 'file_link' => $file_link, 'withoutourdoc' => $letter['withoutourdoc']);
                    $aData[] = $aTmp;
                }
            }
            echo new_paginator($page, $pages, 4, "%s\"letters.changePage({$type}, %d); return false;\"%s", 'onclick');
            $pager_html = ob_get_contents();
            ob_end_clean();
        }
    }
    $res['success'] = true;
    $res['data'] = $aData;
    $res['pager'] = iconv('CP1251', 'UTF-8', $pager_html);
    echo json_encode($res);
    //    return $objResponse;
}