[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /********************************************************************************* 3 ** The contents of this file are subject to the vtiger CRM Public License Version 1.0 4 * ("License"); You may not use this file except in compliance with the License 5 * The Original Code is: vtiger CRM Open Source 6 * The Initial Developer of the Original Code is vtiger. 7 * Portions created by vtiger are Copyright (C) vtiger. 8 * All Rights Reserved. 9 * 10 ********************************************************************************/ 11 12 /** 13 * URL Verfication - Required to overcome Apache mis-configuration and leading to shared setup mode. 14 */ 15 require_once 'config.php'; 16 if (file_exists('config_override.php')) { 17 include_once 'config_override.php'; 18 } 19 20 include_once 'vtlib/Vtiger/Module.php'; 21 include_once 'includes/main/WebUI.php'; 22 23 require_once ('libraries/nusoap/nusoap.php'); 24 25 $log = &LoggerManager::getLogger('wordplugin'); 26 27 error_reporting(0); 28 $NAMESPACE = 'http://www.vtiger.com/products/crm'; 29 $server = new soap_server; 30 $accessDenied = "You are not permitted to perform this action"; 31 $server->configureWSDL('vtigersoap'); 32 33 $server->wsdl->addComplexType( 34 'contact_column_detail', 35 'complexType', 36 'array', 37 '', 38 array( 39 'email_address' => array('name'=>'email_address','type'=>'xsd:string'), 40 'first_name' => array('name'=>'first_name','type'=>'xsd:string'), 41 'last_name' => array('name'=>'last_name','type'=>'xsd:string'), 42 'primary_address_city' => array('name'=>'primary_address_city','type'=>'xsd:string'), 43 'account_name' => array('name'=>'account_name','type'=>'xsd:string'), 44 'id' => array('name'=>'id','type'=>'xsd:string'), 45 'salutation' => array('name'=>'salutation','type'=>'xsd:string'), 46 'title'=> array('name'=>'title','type'=>'xsd:string'), 47 'phone_mobile'=> array('name'=>'phone_mobile','type'=>'xsd:string'), 48 'reports_to'=> array('name'=>'reports_to','type'=>'xsd:string'), 49 'primary_address_city'=> array('name'=>'primary_address_city','type'=>'xsd:string'), 50 'primary_address_street'=> array('name'=>'primary_address_street','type'=>'xsd:string'), 51 'primary_address_state'=> array('name'=>'primary_address_state','type'=>'xsd:string'), 52 'primary_address_postalcode'=> array('name'=>'primary_address_postalcode','type'=>'xsd:string'), 53 'primary_address_country'=> array('name'=>'primary_address_country','type'=>'xsd:string'), 54 'alt_address_city'=> array('name'=>'alt_address_city','type'=>'xsd:string'), 55 'alt_address_street'=> array('name'=>'alt_address_street','type'=>'xsd:string'), 56 'alt_address_state'=> array('name'=>'alt_address_state','type'=>'xsd:string'), 57 'alt_address_postalcode'=> array('name'=>'alt_address_postalcode','type'=>'xsd:string'), 58 'alt_address_country'=> array('name'=>'alt_address_country','type'=>'xsd:string'), 59 ) 60 ); 61 62 $server->wsdl->addComplexType( 63 'account_column_detail', 64 'complexType', 65 'array', 66 '', 67 array( 68 'accountid' => array('name'=>'accountid','type'=>'xsd:string'), 69 'accountname' => array('name'=>'accountname','type'=>'xsd:string'), 70 'parentid' => array('name'=>'parentid','type'=>'xsd:string'), 71 'account_type' => array('name'=>'account_type','type'=>'xsd:string'), 72 'industry' => array('name'=>'industry','type'=>'xsd:string'), 73 'annualrevenue' => array('name'=>'annualrevenue','type'=>'xsd:string'), 74 'rating'=> array('name'=>'rating','type'=>'xsd:string'), 75 'ownership' => array('name'=>'ownership','type'=>'xsd:string'), 76 'siccode' => array('name'=>'siccode','type'=>'xsd:string'), 77 'tickersymbol' => array('name'=>'tickersymbol','type'=>'xsd:string'), 78 'phone' => array('name'=>'phone','type'=>'xsd:string'), 79 'otherphone' => array('name'=>'otherphone','type'=>'xsd:string'), 80 'email1' => array('name'=>'email1','type'=>'xsd:string'), 81 'email2' => array('name'=>'email2','type'=>'xsd:string'), 82 'website' => array('name'=>'website','type'=>'xsd:string'), 83 'fax' => array('name'=>'fax','type'=>'xsd:string'), 84 //'employees' => array('name'=>'employees','type'=>'xsd:string'), 85 ) 86 ); 87 88 $server->wsdl->addComplexType( 89 'lead_column_detail', 90 'complexType', 91 'array', 92 '', 93 array( 94 'id' => array('name'=>'id','type'=>'xsd:string'), 95 'date_entered' => array('name'=>'date_entered','type'=>'xsd:string'), 96 'date_modified' => array('name'=>'date_modified','type'=>'xsd:string'), 97 'modified_user_id' => array('name'=>'modified_user_id','type'=>'xsd:string'), 98 'assigned_user_id' => array('name'=>'assigned_user_id','type'=>'xsd:string'), 99 'salutation' => array('name'=>'salutation','type'=>'xsd:string'), 100 'first_name' => array('name'=>'first_name','type'=>'xsd:string'), 101 'last_name' => array('name'=>'last_name','type'=>'xsd:string'), 102 'company' => array('name'=>'company','type'=>'xsd:string'), 103 'designation' => array('name'=>'designation','type'=>'xsd:string'), 104 'lead_source' => array('name'=>'lead_source','type'=>'xsd:string'), 105 'industry' => array('name'=>'industry','type'=>'xsd:string'), 106 'annual_revenue' => array('name'=>'annual_revenue','type'=>'xsd:string'), 107 'license_key' => array('name'=>'license_key','type'=>'xsd:string'), 108 'phone' => array('name'=>'phone','type'=>'xsd:string'), 109 'mobile' => array('name'=>'mobile','type'=>'xsd:string'), 110 'fax' => array('name'=>'fax','type'=>'xsd:string'), 111 'email' => array('name'=>'email','type'=>'xsd:string'), 112 'secondaryemail' => array('name'=>'secondaryemail','type'=>'xsd:string'), 113 'website' => array('name'=>'website','type'=>'xsd:string'), 114 'lead_status' => array('name'=>'lead_status','type'=>'xsd:string'), 115 'rating' => array('name'=>'rating','type'=>'xsd:string'), 116 'employees' => array('name'=>'employees','type'=>'xsd:string'), 117 'address_street' => array('name'=>'address_street','type'=>'xsd:string'), 118 'address_city' => array('name'=>'address_city','type'=>'xsd:string'), 119 'address_state' => array('name'=>'address_state','type'=>'xsd:string'), 120 'address_postalcode' => array('name'=>'address_postalcode','type'=>'xsd:string'), 121 'address_country' => array('name'=>'address_country','type'=>'xsd:string'), 122 'description' => array('name'=>'description','type'=>'xsd:string'), 123 'deleted' => array('name'=>'deleted','type'=>'xsd:string'), 124 'converted' => array('name'=>'converted','type'=>'xsd:string'), 125 ) 126 ); 127 128 $server->wsdl->addComplexType( 129 'user_column_detail', 130 'complexType', 131 'array', 132 '', 133 array( 134 'firstname' => array('name'=>'firstname','type'=>'xsd:string'), 135 'lastname' => array('name'=>'lastname','type'=>'xsd:string'), 136 'username' => array('name'=>'username','type'=>'xsd:string'), 137 'secondaryemail' => array('name'=>'secondaryemail','type'=>'xsd:string'), 138 'title' => array('name'=>'title','type'=>'xsd:string'), 139 'workphone' => array('name'=>'workphone','type'=>'xsd:string'), 140 'department' => array('name'=>'department','type'=>'xsd:string'), 141 'mobilephone' => array('name'=>'mobilephone','type'=>'xsd:string'), 142 'otherphone'=> array('name'=>'otherphone','type'=>'xsd:string'), 143 'fax' => array('name'=>'fax','type'=>'xsd:string'), 144 'email' => array('name'=>'email','type'=>'xsd:string'), 145 'homephone' => array('name'=>'homephone','type'=>'xsd:string'), 146 'otheremail' => array('name'=>'otheremail','type'=>'xsd:string'), 147 'street' => array('name'=>'street','type'=>'xsd:string'), 148 'city' => array('name'=>'city','type'=>'xsd:string'), 149 'state' => array('name'=>'state','type'=>'xsd:string'), 150 'code' => array('name'=>'code','type'=>'xsd:string'), 151 'country' => array('name'=>'country','type'=>'xsd:string'), 152 ) 153 ); 154 155 $server->wsdl->addComplexType( 156 'tickets_list_array', 157 'complexType', 158 'array', 159 '', 160 array( 161 'ticketid' => array('name'=>'ticketid','type'=>'xsd:string'), 162 'title' => array('name'=>'title','type'=>'xsd:string'), 163 'groupname' => array('name'=>'groupname','type'=>'xsd:string'), 164 'firstname' => array('name'=>'firstname','type'=>'xsd:string'), 165 'lastname' => array('name'=>'lastname','type'=>'xsd:string'), 166 'parent_id' => array('name'=>'parent_id','type'=>'xsd:string'), 167 'productid' => array('name'=>'productid','type'=>'xsd:string'), 168 'productname' => array('name'=>'productname','type'=>'xsd:string'), 169 'priority' => array('name'=>'priority','type'=>'xsd:string'), 170 'severity' => array('name'=>'severity','type'=>'xsd:string'), 171 'status' => array('name'=>'status','type'=>'xsd:string'), 172 'category' => array('name'=>'category','type'=>'xsd:string'), 173 'description' => array('name'=>'description','type'=>'xsd:string'), 174 'solution' => array('name'=>'solution','type'=>'xsd:string'), 175 'createdtime' => array('name'=>'createdtime','type'=>'xsd:string'), 176 'modifiedtime' => array('name'=>'modifiedtime','type'=>'xsd:string'), 177 ) 178 ); 179 180 $server->register( 181 'get_contacts_columns', 182 array('user_name'=>'xsd:string','session'=>'xsd:string'), 183 array('return'=>'tns:contact_column_detail'), 184 $NAMESPACE); 185 186 $server->register( 187 'get_accounts_columns', 188 array('user_name'=>'xsd:string','session'=>'xsd:string'), 189 array('return'=>'tns:account_column_detail'), 190 $NAMESPACE); 191 192 $server->register( 193 'get_leads_columns', 194 array('user_name'=>'xsd:string','session'=>'xsd:string'), 195 array('return'=>'tns:lead_column_detail'), 196 $NAMESPACE); 197 198 $server->register( 199 'get_user_columns', 200 array('user_name'=>'xsd:string','session'=>'xsd:string'), 201 array('return'=>'tns:user_column_detail'), 202 $NAMESPACE); 203 204 $server->register( 205 'get_tickets_columns', 206 array('user_name'=>'xsd:string','session'=>'xsd:string'), 207 array('return'=>'tns:tickets_list_array'), 208 $NAMESPACE); 209 210 $server->register( 211 'create_session', 212 array('user_name'=>'xsd:string','password'=>'xsd:string','version'=>'xsd:string'), 213 array('return'=>'xsd:string','session'=>'xsd:string'), 214 $NAMESPACE); 215 216 $server->register( 217 'end_session', 218 array('user_name'=>'xsd:string'), 219 array('return'=>'xsd:string'), 220 $NAMESPACE); 221 222 function get_tickets_columns($user_name, $session) 223 { 224 if(!validateSession($user_name,$session)) 225 return null; 226 global $current_user,$log; 227 require_once ("modules/Users/Users.php"); 228 $seed_user=new Users(); 229 $user_id=$seed_user->retrieve_user_id($user_name); 230 $current_user=$seed_user; 231 $current_user->retrieve_entity_info($user_id, 'Users'); 232 if(isPermitted("HelpDesk","index") == "yes") 233 { 234 require_once ('modules/HelpDesk/HelpDesk.php'); 235 $helpdesk = new HelpDesk(); 236 $log->debug($helpdesk->getColumnNames_Hd()); 237 return $helpdesk->getColumnNames_Hd(); 238 } 239 else 240 { 241 $return_array = array(); 242 return $return_array; 243 } 244 } 245 246 function get_contacts_columns($user_name, $session) 247 { 248 if(!validateSession($user_name,$session)) 249 return null; 250 global $current_user,$log; 251 require_once ("modules/Users/Users.php"); 252 $seed_user=new Users(); 253 $user_id=$seed_user->retrieve_user_id($user_name); 254 $current_user = $seed_user; 255 $current_user->retrieve_entity_info($user_id, 'Users'); 256 if(isPermitted("Contacts","index") == "yes") 257 { 258 require_once ('modules/Contacts/Contacts.php'); 259 $contact = new Contacts(); 260 $log->debug($contact->getColumnNames()); 261 return $contact->getColumnNames(); 262 } 263 else 264 { 265 $return_array = array(); 266 return $return_array; 267 } 268 269 } 270 271 272 function get_accounts_columns($user_name, $session) 273 { 274 if(!validateSession($user_name,$session)) 275 return null; 276 global $current_user,$log; 277 require_once ("modules/Users/Users.php"); 278 $seed_user=new Users(); 279 $user_id=$seed_user->retrieve_user_id($user_name); 280 $current_user=$seed_user; 281 $current_user->retrieve_entity_info($user_id, 'Users'); 282 if(isPermitted("Accounts","index") == "yes") 283 { 284 require_once ('modules/Accounts/Accounts.php'); 285 $account = new Accounts(); 286 $log->debug($account->getColumnNames_Acnt()); 287 return $account->getColumnNames_Acnt(); 288 } 289 else 290 { 291 $return_array = array(); 292 return $return_array; 293 } 294 295 } 296 297 298 function get_leads_columns($user_name, $session) 299 { 300 if(!validateSession($user_name,$session)) 301 return null; 302 global $current_user,$log; 303 require_once ("modules/Users/Users.php"); 304 $seed_user=new Users(); 305 $user_id=$seed_user->retrieve_user_id($user_name); 306 $current_user=$seed_user; 307 $current_user->retrieve_entity_info($user_id, 'Users'); 308 309 if(isPermitted("Leads","index") == "yes") 310 { 311 require_once ('modules/Leads/Leads.php'); 312 $lead = new Leads(); 313 $log->debug($lead->getColumnNames_Lead()); 314 return $lead->getColumnNames_Lead(); 315 } 316 else 317 { 318 $return_array = array(); 319 return $return_array; 320 } 321 322 } 323 324 function get_user_columns($user_name, $session) 325 { 326 if(!validateSession($user_name,$session)) 327 return null; 328 global $current_user; 329 require_once ('modules/Users/Users.php'); 330 $seed_user=new Users(); 331 $user_id=$seed_user->retrieve_user_id($user_name); 332 $current_user=$seed_user; 333 $current_user->retrieve_entity_info($user_id, 'Users'); 334 $user = new Users(); 335 return $user->getColumnNames_User(); 336 337 } 338 339 340 function create_session($user_name, $password,$version) 341 { 342 global $log,$adb; 343 require_once ('modules/Users/Users.php'); 344 include ('vtigerversion.php'); 345 346 /* Make 5.0.4 plugins compatible with 5.1.0 */ 347 if(version_compare($version,'5.0.4', '>=') === 1) { 348 return array("VERSION",'00'); 349 } 350 351 $return_access = array("FALSES",'00'); 352 353 $objuser = new Users(); 354 355 if($password != "") 356 { 357 $objuser->column_fields['user_name'] = $user_name; 358 $objuser->load_user($password); 359 if($objuser->is_authenticated()) 360 { 361 $userid = $objuser->retrieve_user_id($user_name); 362 $sessionid = makeRandomPassword(); 363 unsetServerSessionId($userid); 364 $sql="insert into vtiger_soapservice values(?,?,?)"; 365 $result = $adb->pquery($sql, array($userid,'Office',$sessionid)); 366 $return_access = array("TRUE",$sessionid); 367 }else 368 { 369 $return_access = array("FALSE",'00'); 370 } 371 }else 372 { 373 //$server->setError("Invalid username and/or password"); 374 $return_access = array("LOGIN",'00'); 375 } 376 $objuser = $objuser; 377 return $return_access; 378 } 379 380 function end_session($user_name) 381 { 382 return "Success"; 383 } 384 385 function unsetServerSessionId($id) 386 { 387 global $adb; 388 $adb->println("Inside the function unsetServerSessionId"); 389 390 $id = (int) $id; 391 392 $adb->query("delete from vtiger_soapservice where type='Office' and id=$id"); 393 394 return; 395 } 396 function validateSession($username, $sessionid) 397 { 398 global $adb,$current_user; 399 $adb->println("Inside function validateSession($username, $sessionid)"); 400 require_once ("modules/Users/Users.php"); 401 $seed_user = new Users(); 402 $id = $seed_user->retrieve_user_id($username); 403 404 $server_sessionid = getServerSessionId($id); 405 406 $adb->println("Checking Server session id and customer input session id ==> $server_sessionid == $sessionid"); 407 408 if($server_sessionid == $sessionid) 409 { 410 $adb->println("Session id match. Authenticated to do the current operation."); 411 return true; 412 } 413 else 414 { 415 $adb->println("Session id does not match. Not authenticated to do the current operation."); 416 return false; 417 } 418 } 419 function getServerSessionId($id) 420 { 421 global $adb; 422 $adb->println("Inside the function getServerSessionId($id)"); 423 424 //To avoid SQL injection we are type casting as well as bound the id variable. In each and every function we will call this function 425 $id = (int) $id; 426 427 $query = "select * from vtiger_soapservice where type='Office' and id={$id}"; 428 $sessionid = $adb->query_result($adb->query($query),0,'sessionid'); 429 430 return $sessionid; 431 } 432 433 /* Begin the HTTP listener service and exit. */ 434 if (!isset($HTTP_RAW_POST_DATA)){ 435 $HTTP_RAW_POST_DATA = file_get_contents('php://input'); 436 } 437 $server->service($HTTP_RAW_POST_DATA); 438 exit(); 439 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |