[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/soap/ -> wordplugin.php (source)

   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  ?>


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1