665 lines
26 KiB
PHP
665 lines
26 KiB
PHP
<?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.
|
|
*
|
|
********************************************************************************/
|
|
|
|
require_once("config.php");
|
|
require_once('include/logging.php');
|
|
require_once('include/nusoap/nusoap.php');
|
|
require_once('include/database/PearDatabase.php');
|
|
require_once('modules/Contacts/Contacts.php');
|
|
|
|
$log = &LoggerManager::getLogger('thunderbirdplugin');
|
|
|
|
$accessDenied = "You are not authorized for performing this action";
|
|
$NAMESPACE = 'http://www.vtiger.com/products/crm';
|
|
$server = new soap_server;
|
|
|
|
$server->configureWSDL('vtigersoap');
|
|
|
|
$server->register(
|
|
'create_session',
|
|
array('user_name'=>'xsd:string','password'=>'xsd:string','version'=>'xsd:string'),
|
|
array('return'=>'xsd:string'),
|
|
$NAMESPACE);
|
|
|
|
$server->register(
|
|
'end_session',
|
|
array('user_name'=>'xsd:string'),
|
|
array('return'=>'xsd:string'),
|
|
$NAMESPACE);
|
|
|
|
$server->register(
|
|
'SearchContactsByEmail',
|
|
array('username'=>'xsd:string','password'=>'xsd:string','emailaddress'=>'xsd:string'),
|
|
array('return'=>'tns:contactdetails'),
|
|
$NAMESPACE);
|
|
|
|
$server->register(
|
|
'GetContacts',
|
|
array('username'=>'xsd:string','password'=>'xsd:string'),
|
|
array('return'=>'tns:contactdetails'),
|
|
$NAMESPACE);
|
|
|
|
$server->register(
|
|
'CheckContactPerm',array('user_name'=>'xsd:string','password'=>'xsd:string'),
|
|
array('return'=>'xsd:string'),$NAMESPACE);
|
|
|
|
$server->register(
|
|
'CheckContactViewPerm',array('user_name'=>'xsd:string','password'=>'xsd:string'),
|
|
array('return'=>'xsd:string'),$NAMESPACE);
|
|
|
|
$server->register(
|
|
'CheckContactEmailPerm',array('user_name'=>'xsd:string','password'=>'xsd:string'),
|
|
array('return'=>'xsd:string'),$NAMESPACE);
|
|
|
|
$server->register(
|
|
'CheckLeadViewPerm',array('user_name'=>'xsd:string','password'=>'xsd:string'),
|
|
array('return'=>'xsd:string'),$NAMESPACE);
|
|
|
|
$server->register(
|
|
'AddContact',
|
|
array('user_name'=>'xsd:string',
|
|
'first_name'=>'xsd:string',
|
|
'last_name'=>'xsd:string',
|
|
'email_address'=>'xsd:string',
|
|
'account_name'=>'xsd:string',
|
|
'salutation'=>'xsd:string',
|
|
'title'=>'xsd:string',
|
|
'phone_mobile'=>'xsd:string',
|
|
'reports_to'=>'xsd:string',
|
|
'primary_address_street'=>'xsd:string',
|
|
'primary_address_city'=>'xsd:string',
|
|
'primary_address_state'=>'xsd:string' ,
|
|
'primary_address_postalcode'=>'xsd:string',
|
|
'primary_address_country'=>'xsd:string',
|
|
'alt_address_city'=>'xsd:string',
|
|
'alt_address_street'=>'xsd:string',
|
|
'alt_address_state'=>'xsd:string',
|
|
'alt_address_postalcode'=>'xsd:string',
|
|
'alt_address_country'=>'xsd:string',
|
|
'office_phone'=>'xsd:string',
|
|
'home_phone'=>'xsd:string',
|
|
'fax'=>'xsd:string',
|
|
'department'=>'xsd:string',
|
|
'password'=>'xsd:string',
|
|
'description'=>'xsd:string'),
|
|
array('return'=>'xsd:string'),
|
|
$NAMESPACE);
|
|
|
|
$server->register(
|
|
'AddLead',
|
|
array('user_name'=>'xsd:string',
|
|
'first_name'=>'xsd:string',
|
|
'last_name'=>'xsd:string',
|
|
'email_address'=>'xsd:string',
|
|
'account_name'=>'xsd:string',
|
|
'salutation'=>'xsd:string',
|
|
'title'=>'xsd:string',
|
|
'phone_mobile'=>'xsd:string',
|
|
'reports_to'=>'xsd:string',
|
|
'primary_address_street'=>'xsd:string',
|
|
'primary_address_city'=>'xsd:string',
|
|
'primary_address_state'=>'xsd:string' ,
|
|
'primary_address_postalcode'=>'xsd:string',
|
|
'primary_address_country'=>'xsd:string',
|
|
'alt_address_city'=>'xsd:string',
|
|
'alt_address_street'=>'xsd:string',
|
|
'alt_address_state'=>'xsd:string',
|
|
'alt_address_postalcode'=>'xsd:string',
|
|
'alt_address_country'=>'xsd:string',
|
|
'office_phone'=>'xsd:string',
|
|
'home_phone'=>'xsd:string',
|
|
'fax'=>'xsd:string',
|
|
'department'=>'xsd:string',
|
|
'password'=>'xsd:string',
|
|
'description'=>'xsd:string'),
|
|
array('return'=>'xsd:string'),
|
|
$NAMESPACE);
|
|
|
|
$server->register(
|
|
'track_email',
|
|
array('user_name'=>'xsd:string','password'=>'xsd:string', 'contact_ids'=>'xsd:string', 'date_sent'=>'xsd:string', 'email_subject'=>'xsd:string', 'email_body'=>'xsd:string'),
|
|
array('return'=>'xsd:string'),
|
|
$NAMESPACE);
|
|
|
|
$server->wsdl->addComplexType(
|
|
'contactdetail',
|
|
'complexType',
|
|
'struct',
|
|
'all',
|
|
'',
|
|
array(
|
|
'id' => array('name'=>'id','type'=>'xsd:string'),
|
|
'firstname' => array('name'=>'firstname','type'=>'xsd:string'),
|
|
'lastname' => array('name'=>'lastname','type'=>'xsd:string'),
|
|
'emailaddress' => array('name'=>'emailaddress','type'=>'xsd:string'),
|
|
'accountname' => array('name'=>'accountname','type'=>'xsd:string'),
|
|
'middlename' => array('name'=>'middlename','type'=>'xsd:string'),
|
|
'birthdate'=> array('name'=>'birthdate','type'=>'xsd:string'),
|
|
'jobtitle'=> array('name'=>'jobtitle','type'=>'xsd:string'),
|
|
'department'=> array('name'=>'department','type'=>'xsd:string'),
|
|
'title' => array('name'=>'title','type'=>'xsd:string'),
|
|
'officephone'=> array('name'=>'officephone','type'=>'xsd:string'),
|
|
'homephone'=> array('name'=>'homephone','type'=>'xsd:string'),
|
|
'otherphone'=> array('name'=>'otherphone','type'=>'xsd:string'),
|
|
'fax'=> array('name'=>'fax','type'=>'xsd:string'),
|
|
'mobile'=> array('name'=>'mobile','type'=>'xsd:string'),
|
|
'asstname'=> array('name'=>'asstname','type'=>'xsd:string'),
|
|
'asstphone'=> array('name'=>'asstphone','type'=>'xsd:string'),
|
|
'reportsto'=> array('name'=>'reportsto','type'=>'xsd:string'),
|
|
'mailingstreet'=> array('name'=>'mailingstreet','type'=>'xsd:string'),
|
|
'mailingcity'=> array('name'=>'mailingcity','type'=>'xsd:string'),
|
|
'mailingstate'=> array('name'=>'mailingstate','type'=>'xsd:string'),
|
|
'mailingzip'=> array('name'=>'mailingzip','type'=>'xsd:string'),
|
|
'mailingcountry'=> array('name'=>'mailingcountry','type'=>'xsd:string'),
|
|
'otherstreet'=> array('name'=>'otherstreet','type'=>'xsd:string'),
|
|
'othercity'=> array('name'=>'othercity','type'=>'xsd:string'),
|
|
'otherstate'=> array('name'=>'otherstate','type'=>'xsd:string'),
|
|
'otherzip'=> array('name'=>'otherzip','type'=>'xsd:string'),
|
|
'othercountry'=> array('name'=>'othercountry','type'=>'xsd:string'),
|
|
'description'=> array('name'=>'description','type'=>'xsd:string'),
|
|
'category'=> array('name'=>'category','type'=>'xsd:string'),
|
|
)
|
|
);
|
|
|
|
$server->wsdl->addComplexType(
|
|
'contactdetails',
|
|
'complexType',
|
|
'array',
|
|
'',
|
|
'SOAP-ENC:Array',
|
|
array(),
|
|
array(
|
|
array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:contactdetail[]')
|
|
),
|
|
'tns:contactdetail'
|
|
);
|
|
|
|
|
|
function SearchContactsByEmail($username,$password,$emailaddress)
|
|
{
|
|
if(authentication($username,$password))
|
|
{
|
|
require_once('modules/Contacts/Contacts.php');
|
|
|
|
$seed_contact = new Contacts();
|
|
$output_list = Array();
|
|
|
|
$response = $seed_contact->get_searchbyemailid($username,$emailaddress);
|
|
$contactList = $response['list'];
|
|
|
|
// create a return array of names and email addresses.
|
|
foreach($contactList as $contact)
|
|
{
|
|
$output_list[] = Array(
|
|
"id" => decode_html($contact[contactid]),
|
|
"firstname" => decode_html($contact[firstname]),
|
|
"lastname" => decode_html($contact[lastname]),
|
|
"emailaddress" => decode_html($contact[email]),
|
|
"accountname" => decode_html($contact[accountname]),
|
|
);
|
|
}
|
|
|
|
//to remove an erroneous compiler warning
|
|
$seed_contact = $seed_contact;
|
|
return $output_list;
|
|
}
|
|
}
|
|
|
|
function track_email($user_name,$password,$contact_ids, $date_sent, $email_subject, $email_body)
|
|
{
|
|
if(authentication($user_name,$password))
|
|
{
|
|
global $current_user;
|
|
global $adb;
|
|
global $log;
|
|
require_once('modules/Users/Users.php');
|
|
require_once('modules/Emails/Emails.php');
|
|
$current_user = new Users();
|
|
$user_id = $current_user->retrieve_user_id($user_name);
|
|
$query = "select email1 from vtiger_users where id =?";
|
|
$result = $adb->pquery($query, array($user_id));
|
|
$user_emailid = $adb->query_result($result,0,"email1");
|
|
$current_user = $current_user->retrieveCurrentUserInfoFromFile($user_id);
|
|
$email = new Emails();
|
|
//$log->debug($msgdtls['contactid']);
|
|
$emailbody = str_replace("'", "''", $email_body);
|
|
$emailsubject = str_replace("'", "''",$email_subject);
|
|
$datesent = substr($date_sent,1,10);
|
|
$mydate = date('Y-m-d',$datesent);
|
|
$mydate = DateTimeField::convertToDBFormat($mydate);
|
|
$email->column_fields[subject] = $emailsubject;
|
|
$email->column_fields[assigned_user_id] = $user_id;
|
|
$email->column_fields[date_start] = $mydate;
|
|
$email->column_fields[description] = $emailbody;
|
|
$email->column_fields[activitytype] = 'Emails';
|
|
$email->plugin_save = true;
|
|
$email->save("Emails");
|
|
$query = "select fieldid from vtiger_field where fieldname = 'email' and tabid = 4 and vtiger_field.presence in (0,2)";
|
|
$result = $adb->pquery($query, array());
|
|
$field_id = $adb->query_result($result,0,"fieldid");
|
|
$email->set_emails_contact_invitee_relationship($email->id,$contact_ids);
|
|
$email->set_emails_se_invitee_relationship($email->id,$contact_ids);
|
|
$email->set_emails_user_invitee_relationship($email->id,$user_id);
|
|
$sql = "select email from vtiger_contactdetails inner join vtiger_crmentity on vtiger_crmentity.crmid = vtiger_contactdetails.contactid where vtiger_crmentity.deleted =0 and vtiger_contactdetails.contactid=?";
|
|
$result = $adb->pquery($sql, array($contact_ids));
|
|
$camodulerow = $adb->fetch_array($result);
|
|
if(isset($camodulerow))
|
|
{
|
|
$emailid = $camodulerow["email"];
|
|
|
|
//added to save < as $lt; and > as > in the database so as to retrive the emailID
|
|
$user_emailid = str_replace('<','<',$user_emailid);
|
|
$user_emailid = str_replace('>','>',$user_emailid);
|
|
$query = 'insert into vtiger_emaildetails values (?,?,?,?,?,?,?,?)';
|
|
$params = array($email->id, $emailid, $user_emailid, "", "", "", $user_id.'@-1|'.$contact_ids.'@'.$field_id.'|',"THUNDERBIRD");
|
|
$adb->pquery($query, $params);
|
|
}
|
|
return $email->id;
|
|
}
|
|
}
|
|
|
|
function GetContacts($username,$password)
|
|
{
|
|
if(authentication($username,$password))
|
|
{
|
|
global $adb;
|
|
global $log;
|
|
require_once('modules/Contacts/Contacts.php');
|
|
|
|
$seed_contact = new Contacts();
|
|
$output_list = Array();
|
|
|
|
$query = $seed_contact->get_contactsforol($username);
|
|
$result = $adb->query($query);
|
|
|
|
while($contact = $adb->fetch_array($result))
|
|
{
|
|
if($contact["birthdate"] == "0000-00-00")
|
|
{
|
|
$contact["birthdate"] = "";
|
|
}
|
|
if($contact["salutation"] == "--None--")
|
|
{
|
|
$contact["salutation"] = "";
|
|
}
|
|
$output_list[] = Array(
|
|
"id" => decode_html($contact["id"]),
|
|
"title" => decode_html($contact["salutation"]),
|
|
"firstname" => decode_html($contact["firstname"]),
|
|
"middlename" => decode_html(trim($middlename)),
|
|
"lastname" => decode_html(trim($contact["lastname"])),
|
|
"birthdate" => $contact["birthday"],
|
|
"emailaddress" => decode_html($contact["email"]),
|
|
"jobtitle" => decode_html($contact["title"]),
|
|
"department" => decode_html($contact["department"]),
|
|
"accountname" => decode_html($contact["accountname"]),
|
|
"officephone" => decode_html($contact["phone"]),
|
|
"homephone" => decode_html($contact["homephone"]),
|
|
"otherphone" => decode_html($contact["otherphone"]),
|
|
"fax" => decode_html($contact["fax"]),
|
|
"mobile" => decode_html($contact["mobile"]),
|
|
"asstname" => decode_html($contact["assistant"]),
|
|
"asstphone" => decode_html($contact["assistantphone"]),
|
|
"reportsto" => decode_html($contact["reports_to_name"]),
|
|
"mailingstreet" => decode_html($contact["mailingstreet"]),
|
|
"mailingcity" => decode_html($contact["mailingcity"]),
|
|
"mailingstate" => decode_html($contact["mailingstate"]),
|
|
"mailingzip" => decode_html($contact["mailingzip"]),
|
|
"mailingcountry" => decode_html($contact["mailingcountry"]),
|
|
"otherstreet" => decode_html($contact["otherstreet"]),
|
|
"othercity" => decode_html($contact["othercity"]),
|
|
"otherstate" => decode_html($contact["otherstate"]),
|
|
"otherzip" => decode_html($contact["otherzip"]),
|
|
"othercountry" => decode_html($contact["othercountry"]),
|
|
"description" => "",
|
|
"category" => "",
|
|
);
|
|
}
|
|
//to remove an erroneous compiler warning
|
|
$seed_contact = $seed_contact;
|
|
return $output_list;
|
|
}
|
|
}
|
|
|
|
function retrieve_account_id($account_name,$user_id)
|
|
{
|
|
|
|
if($account_name=="")
|
|
{
|
|
return null;
|
|
}
|
|
|
|
$db = PearDatabase::getInstance();
|
|
|
|
$query = "select vtiger_account.accountname accountname,vtiger_account.accountid accountid from vtiger_account inner join vtiger_crmentity on vtiger_crmentity.crmid=vtiger_account.accountid where vtiger_crmentity.deleted=0 and vtiger_account.accountname=?";
|
|
$result= $db->pquery($query, array($account_name)) or die ("Not able to execute insert");
|
|
|
|
$rows_count = $db->getRowCount($result);
|
|
if($rows_count==0)
|
|
{
|
|
require_once('modules/Accounts/Accounts.php');
|
|
$account = new Accounts();
|
|
$account->column_fields[accountname] = $account_name;
|
|
$account->column_fields[assigned_user_id]=$user_id;
|
|
//$account->saveentity("Accounts");
|
|
$account->save("Accounts");
|
|
//mysql_close();
|
|
return $account->id;
|
|
}
|
|
else if ($rows_count==1)
|
|
{
|
|
$row = $db->fetchByAssoc($result, 0);
|
|
//mysql_close();
|
|
return $row["accountid"];
|
|
}
|
|
else
|
|
{
|
|
$row = $db->fetchByAssoc($result, 0);
|
|
//mysql_close();
|
|
return $row["accountid"];
|
|
}
|
|
|
|
}
|
|
|
|
function AddContact($user_name,$first_name, $last_name, $email_address ,$account_name , $salutation , $title, $phone_mobile, $reports_to,$primary_address_street,$primary_address_city,$primary_address_state,$primary_address_postalcode,$primary_address_country,$alt_address_city,$alt_address_street,$alt_address_state,$alt_address_postalcode,$alt_address_country,$office_phone="",$home_phone="",$fax="",$department="",$password,$description="")
|
|
{
|
|
if(authentication($user_name,$password))
|
|
{
|
|
global $adb;
|
|
global $current_user;
|
|
require_once('modules/Users/Users.php');
|
|
require_once('modules/Contacts/Contacts.php');
|
|
|
|
$seed_user = new Users();
|
|
$user_id = $seed_user->retrieve_user_id($user_name);
|
|
$current_user = $seed_user;
|
|
$current_user->retrieve_entity_info($user_id,"Users");
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
require('user_privileges/sharing_privileges_'.$current_user->id.'.php');
|
|
|
|
if($is_admin == true || $profileGlobalPermission[1] == 0 || $profileGlobalPermission[2] == 0) {
|
|
$sql1 = "select fieldname,columnname from vtiger_field where tabid=4 and block <> 75 and block <> 6 and block <> 5 and vtiger_field.presence in (0,2)";
|
|
$params1 = array();
|
|
} else {
|
|
$profileList = getCurrentUserProfileList();
|
|
$sql1 = "select fieldname,columnname from vtiger_field inner join vtiger_profile2field on vtiger_profile2field.fieldid=vtiger_field.fieldid inner join vtiger_def_org_field on vtiger_def_org_field.fieldid=vtiger_field.fieldid where vtiger_field.tabid=4 and vtiger_field.block <> 75 and vtiger_field.block <> 6 and vtiger_field.block <> 5 and vtiger_field.displaytype in (1,2,4) and vtiger_profile2field.visible=0 and vtiger_def_org_field.visible=0 and vtiger_field.presence in (0,2)";
|
|
$params1 = array();
|
|
if (count($profileList) > 0) {
|
|
$sql1 .= " and vtiger_profile2field.profileid in (". generateQuestionMarks($profileList) .")";
|
|
array_push($params1, $profileList);
|
|
}
|
|
}
|
|
$result1 = $adb->pquery($sql1, $params1);
|
|
|
|
for($i=0;$i < $adb->num_rows($result1);$i++)
|
|
{
|
|
$permitted_lists[] = $adb->query_result($result1,$i,'fieldname');
|
|
}
|
|
|
|
$contact = new Contacts();
|
|
$contact->column_fields[firstname]=in_array('firstname',$permitted_lists) ? $first_name : "";
|
|
$contact->column_fields[lastname]=in_array('lastname',$permitted_lists) ? $last_name : "";
|
|
$contact->column_fields[email]=in_array('email',$permitted_lists) ? $email_address : "";
|
|
$contact->column_fields[title]=in_array('title',$permitted_lists) ? $title : "";
|
|
$contact->column_fields[department]=in_array('department',$permitted_lists) ? $department : "";
|
|
$contact->column_fields[account_id]=in_array('account_id',$permitted_lists) ? retrieve_account_id($account_name,$user_id) : "";
|
|
$contact->column_fields[phone]=in_array('phone',$permitted_lists) ? $office_phone : "";
|
|
$contact->column_fields[homephone]=in_array('homephone',$permitted_lists) ? $home_phone : "";
|
|
$contact->column_fields[fax]=in_array('fax',$permitted_lists) ? $fax : "";
|
|
$contact->column_fields[mobile]=in_array('mobile',$permitted_lists) ? $phone_mobile : "";
|
|
$contact->column_fields[mailingstreet]=in_array('mailingstreet',$permitted_lists) ? $primary_address_street : "";
|
|
$contact->column_fields[mailingcity]=in_array('mailingcity',$permitted_lists) ? $primary_address_city : "";
|
|
$contact->column_fields[mailingstate]=in_array('mailingstate',$permitted_lists) ? $primary_address_state : "";
|
|
$contact->column_fields[mailingzip]=in_array('mailingzip',$permitted_lists) ? $primary_address_postalcode : "";
|
|
$contact->column_fields[mailingcountry]=in_array('mailingcountry',$permitted_lists) ? $primary_address_country : "";
|
|
$contact->column_fields[otherstreet]=in_array('otherstreet',$permitted_lists) ? $alt_address_street : "";
|
|
$contact->column_fields[othercity]=in_array('othercity',$permitted_lists) ? $alt_address_city : "";
|
|
$contact->column_fields[otherstate]=in_array('otherstate',$permitted_lists) ? $alt_address_state : "";
|
|
$contact->column_fields[otherzip]=in_array('otherzip',$permitted_lists) ? $alt_address_postalcode : "";
|
|
$contact->column_fields[othercountry]=in_array('othercountry',$permitted_lists) ? $alt_address_country : "";
|
|
$contact->column_fields[assigned_user_id]=in_array('assigned_user_id',$permitted_lists) ? $user_id : "";
|
|
$contact->column_fields[description]= "";
|
|
$contact->save("Contacts");
|
|
|
|
$contact = $contact;
|
|
return $contact->id;
|
|
}
|
|
}
|
|
|
|
function AddLead($user_name, $first_name, $last_name, $email_address ,$account_name , $salutation , $title, $phone_mobile, $reports_to ,$primary_address_street , $website ,$primary_address_city,$primary_address_state,$primary_address_postalcode,$primary_address_country,$alt_address_city,$alt_address_street,$alt_address_state,$alt_address_postalcode,$alt_address_country,$office_phone="",$home_phone="",$fax="",$department="",$password,$description="")
|
|
{
|
|
if(authentication($user_name,$password))
|
|
{
|
|
global $adb;
|
|
global $current_user;
|
|
require_once('modules/Users/Users.php');
|
|
require_once('modules/Leads/Leads.php');
|
|
|
|
$seed_user = new Users();
|
|
$user_id = $seed_user->retrieve_user_id($user_name);
|
|
$current_user = $seed_user;
|
|
$current_user->retrieve_entity_info($user_id,"Users");
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
require('user_privileges/sharing_privileges_'.$current_user->id.'.php');
|
|
|
|
if($is_admin == true || $profileGlobalPermission[1] == 0 || $profileGlobalPermission[2] == 0) {
|
|
$sql1 = "select fieldname,columnname from vtiger_field where tabid=7 and block <> 14 and vtiger_field.presence in (0,2)";
|
|
$params1 = array();
|
|
} else {
|
|
$profileList = getCurrentUserProfileList();
|
|
$sql1 = "select fieldname,columnname from vtiger_field inner join vtiger_profile2field on vtiger_profile2field.fieldid=vtiger_field.fieldid inner join vtiger_def_org_field on vtiger_def_org_field.fieldid=vtiger_field.fieldid where vtiger_field.tabid=7 and vtiger_field.block <> 14 and vtiger_field.displaytype in (1,2,4) and vtiger_profile2field.visible=0 and vtiger_def_org_field.visible=0 and vtiger_field.presence in (0,2)";
|
|
$params1 = array();
|
|
if (count($profileList) > 0) {
|
|
$sql1 .= " and vtiger_profile2field.profileid in (". generateQuestionMarks($profileList) .")";
|
|
array_push($params1, $profileList);
|
|
}
|
|
}
|
|
$result1 = $adb->pquery($sql1, $params1);
|
|
for($i=0;$i < $adb->num_rows($result1);$i++)
|
|
{
|
|
$permitted_lists[] = $adb->query_result($result1,$i,'fieldname');
|
|
}
|
|
|
|
$Lead = new Leads();
|
|
$Lead->column_fields[firstname]=in_array('firstname',$permitted_lists) ? $first_name : "";
|
|
$Lead->column_fields[lastname]=in_array('lastname',$permitted_lists) ? $last_name : "";
|
|
$Lead->column_fields[company]=in_array('company',$permitted_lists) ? $account_name : "";
|
|
$Lead->column_fields[email]=in_array('email',$permitted_lists) ? $email_address : "";
|
|
$Lead->column_fields[title]=in_array('title',$permitted_lists) ? $title : "";
|
|
$Lead->column_fields[designation]=in_array('designation',$permitted_lists) ? $department : "";
|
|
$Lead->column_fields[phone]=in_array('phone',$permitted_lists) ? $office_phone : "";
|
|
$Lead->column_fields[homephone]=in_array('homephone',$permitted_lists) ? $home_phone : "";
|
|
$Lead->column_fields[website]=in_array('website',$permitted_lists) ? $website : "";
|
|
$Lead->column_fields[fax]=in_array('fax',$permitted_lists) ? $fax : "";
|
|
$Lead->column_fields[mobile]=in_array('mobile',$permitted_lists) ? $phone_mobile : "";
|
|
$Lead->column_fields[mailingstreet]=in_array('mailingstreet',$permitted_lists) ? $primary_address_street : "";
|
|
$Lead->column_fields[mailingcity]=in_array('mailingcity',$permitted_lists) ? $primary_address_city : "";
|
|
$Lead->column_fields[mailingstate]=in_array('mailingstate',$permitted_lists) ? $primary_address_state : "";
|
|
$Lead->column_fields[mailingzip]=in_array('mailingzip',$permitted_lists) ? $primary_address_postalcode : "";
|
|
$Lead->column_fields[workCountry]=in_array('mailingcountry',$permitted_lists) ? $workCountry : "";
|
|
$Lead->column_fields[lane]=in_array('lane',$permitted_lists) ? $alt_address_street : "";
|
|
$Lead->column_fields[city]=in_array('city',$permitted_lists) ? $alt_address_city : "";
|
|
$Lead->column_fields[state]=in_array('state',$permitted_lists) ? $alt_address_state : "";
|
|
$Lead->column_fields[code]=in_array('code',$permitted_lists) ? $alt_address_postalcode : "";
|
|
$Lead->column_fields[country]=in_array('country',$permitted_lists) ? $alt_address_country : "";
|
|
$Lead->column_fields[assigned_user_id]=in_array('assigned_user_id',$permitted_lists) ? $user_id : "";
|
|
$Lead->column_fields[description]= "";
|
|
// $log->fatal($Lead->column_fields);
|
|
$Lead->save("Leads");
|
|
|
|
$Lead = $Lead;
|
|
return $Lead->id;
|
|
}
|
|
}
|
|
|
|
function create_session($user_name, $password,$version)
|
|
{
|
|
global $adb,$log;
|
|
$return_access = 'FALSES';
|
|
include('vtigerversion.php');
|
|
|
|
/* Make 5.0.4 plugins compatible with 5.1.0 */
|
|
if(version_compare($version,'5.0.4', '>=') === 1) {
|
|
return array("VERSION",'00');
|
|
}
|
|
|
|
require_once('modules/Users/Users.php');
|
|
$objuser = new Users();
|
|
if($password != "" && $user_name != '')
|
|
{
|
|
$objuser->column_fields['user_name'] = $user_name;
|
|
$encrypted_password = $objuser->encrypt_password($password);
|
|
if($objuser->load_user($password) && $objuser->is_authenticated())
|
|
{
|
|
$query = "select id from vtiger_users where user_name=? and user_password=?";
|
|
$result = $adb->pquery($query, array($user_name, $encrypted_password));
|
|
if($adb->num_rows($result) > 0)
|
|
{
|
|
$return_access = 'TRUES';
|
|
$log->debug("Logged in sucessfully from thunderbirdplugin");
|
|
}else
|
|
{
|
|
$return_access = 'FALSES';
|
|
$log->debug("Logged in failure from thunderbirdplugin");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$return_access = 'LOGIN';
|
|
$log->debug("Logged in failure from thunderbirdplugin");
|
|
}
|
|
}else
|
|
{
|
|
$return_access = 'FALSES';
|
|
$log->debug("Logged in failure from thunderbirdplugin");
|
|
}
|
|
return $return_access;
|
|
}
|
|
function authentication($user_name,$password)
|
|
{
|
|
global $adb,$log;
|
|
require_once('modules/Users/Users.php');
|
|
$objuser = new Users();
|
|
if($password != "" && $user_name != '')
|
|
{
|
|
$objuser->column_fields['user_name'] = $user_name;
|
|
$encrypted_password = $objuser->encrypt_password($password);
|
|
if($objuser->load_user($password) && $objuser->is_authenticated())
|
|
{
|
|
$query = "select id from vtiger_users where user_name=? and user_password=?";
|
|
$log->DEBUG("Running Query is ".$query);
|
|
$result = $adb->pquery($query, array($user_name, $encrypted_password));
|
|
if($adb->num_rows($result) > 0)
|
|
{
|
|
return true;
|
|
}else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}else
|
|
{
|
|
return false;
|
|
}
|
|
return false;
|
|
}
|
|
function end_session($user_name)
|
|
{
|
|
return "Success";
|
|
}
|
|
|
|
function CheckContactPerm($user_name,$password)
|
|
{
|
|
if(authentication($user_name,$password))
|
|
{
|
|
global $current_user;
|
|
require_once('modules/Users/Users.php');
|
|
$seed_user = new Users();
|
|
$user_id = $seed_user->retrieve_user_id($user_name);
|
|
$current_user = $seed_user;
|
|
$current_user->retrieve_entity_info($user_id,"Users");
|
|
if(isPermitted("Contacts","EditView") == "yes")
|
|
{
|
|
return "allowed";
|
|
}else
|
|
{
|
|
return "denied";
|
|
}
|
|
}
|
|
}
|
|
|
|
function CheckContactEmailPerm($user_name,$password)
|
|
{
|
|
if(authentication($user_name,$password))
|
|
{
|
|
global $current_user,$log;
|
|
require_once('modules/Users/Users.php');
|
|
$seed_user = new Users();
|
|
$user_id = $seed_user->retrieve_user_id($user_name);
|
|
$current_user = $seed_user;
|
|
$current_user->retrieve_entity_info($user_id,"Users");
|
|
if((isPermitted("Contacts","index") == "yes") && (isPermitted("Emails","index") == "yes"))
|
|
{
|
|
return "allowed";
|
|
}else
|
|
{
|
|
return "notallowed";
|
|
}
|
|
}
|
|
}
|
|
function CheckContactViewPerm($user_name,$password)
|
|
{
|
|
if(authentication($user_name,$password))
|
|
{
|
|
global $current_user,$log;
|
|
require_once('modules/Users/Users.php');
|
|
$seed_user = new Users();
|
|
$user_id = $seed_user->retrieve_user_id($user_name);
|
|
$current_user = $seed_user;
|
|
$current_user->retrieve_entity_info($user_id,"Users");
|
|
if(isPermitted("Contacts","index") == "yes")
|
|
{
|
|
return "allowed";
|
|
}else
|
|
{
|
|
return "contact";
|
|
}
|
|
}
|
|
}
|
|
|
|
function CheckLeadViewPerm($user_name)
|
|
{
|
|
global $current_user,$log;
|
|
require_once('modules/Users/Users.php');
|
|
$seed_user = new Users();
|
|
$user_id = $seed_user->retrieve_user_id($user_name);
|
|
$current_user = $seed_user;
|
|
$current_user->retrieve_entity_info($user_id,"Users");
|
|
if(isPermitted("Leads","EditView") == "yes")
|
|
{
|
|
return "allowed";
|
|
}else
|
|
{
|
|
return "denied";
|
|
}
|
|
}
|
|
/* Begin the HTTP listener service and exit. */
|
|
if (!isset($HTTP_RAW_POST_DATA)){
|
|
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
|
|
}
|
|
$server->service($HTTP_RAW_POST_DATA);
|
|
exit();
|
|
?>
|