function createAccessKey() { $adb = PearDatabase::getInstance(); $log = vglobal('log'); $log->info("Entering Into function createAccessKey()"); $updateQuery = "update vtiger_users set accesskey=? where id=?"; $insertResult = $adb->pquery($updateQuery, array(vtws_generateRandomAccessKey(16), $this->id)); $log->info("Exiting function createAccessKey()"); }
function webserviceMigration() { global $adb; require_once 'include/utils/CommonUtils.php'; require_once 'include/Webservices/Utils.php'; $fieldTypeInfo = array('picklist' => array(15, 16), 'text' => array(19, 20, 21, 24), 'autogenerated' => array(3), 'phone' => array(11), 'multipicklist' => array(33), 'url' => array(17), 'skype' => array(85), 'boolean' => array(56, 156), 'owner' => array(53), 'file' => array(61, 28)); $referenceMapping = array("50" => array("Accounts"), "51" => array("Accounts"), "57" => array("Contacts"), "58" => array("Campaigns"), "73" => array("Accounts"), "75" => array("Vendors"), "76" => array("Potentials"), "78" => array("Quotes"), "80" => array("SalesOrder"), "81" => array("Vendors"), "101" => array("Users"), "52" => array("Users"), "357" => array("Contacts", "Accounts", "Leads", "Users", "Vendors"), "59" => array("Products"), "66" => array("Leads", "Accounts", "Potentials", "HelpDesk"), "77" => array("Users"), "68" => array("Contacts", "Accounts"), "117" => array('Currency'), "116" => array('Currency'), '26' => array('DocumentFolders'), '10' => array()); ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_fieldtype(fieldtypeid integer(19) not null auto_increment,uitype varchar(30)not null,fieldtype varchar(200) not null,PRIMARY KEY(fieldtypeid),UNIQUE KEY uitype_idx (uitype)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_referencetype(fieldtypeid integer(19) not null,type varchar(25) not null,PRIMARY KEY(fieldtypeid,type), CONSTRAINT `fk_1_vtiger_referencetype` FOREIGN KEY (`fieldtypeid`) REFERENCES `vtiger_ws_fieldtype` (`fieldtypeid`) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_userauthtoken(userid integer(19) not null,token varchar(25) not null,expiretime INTEGER(19),PRIMARY KEY(userid,expiretime),UNIQUE KEY userid_idx (userid)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); ExecuteQuery("alter table vtiger_users add column accesskey varchar(36);"); $fieldid = $adb->getUniqueID("vtiger_field"); $usersTabId = getTabid("Users"); $user_adv_block_id = getBlockId($usersTabId, 'LBL_USER_ADV_OPTIONS'); ExecuteQuery("insert into vtiger_field (tabid, fieldid, columnname, tablename, generatedtype, uitype, fieldname, fieldlabel, readonly, presence, selected, maximumlength, sequence, block, displaytype, typeofdata, quickcreate, quickcreatesequence, info_type, masseditable, helpinfo) values({$usersTabId},{$fieldid},'accesskey','vtiger_users',1,3,'accesskey','Webservice Access Key',1,0,0,100,2,{$user_adv_block_id},2,'V~O',1,null,'BAS',0,'Webservice Access Key');"); foreach ($referenceMapping as $uitype => $referenceArray) { $success = true; $result = $adb->pquery("insert into vtiger_ws_fieldtype(uitype,fieldtype) values(?,?)", array($uitype, "reference")); if (!is_object($result)) { $success = false; } $result = $adb->pquery("select * from vtiger_ws_fieldtype where uitype=?", array($uitype)); $rowCount = $adb->num_rows($result); for ($i = 0; $i < $rowCount; $i++) { $fieldTypeId = $adb->query_result($result, $i, "fieldtypeid"); foreach ($referenceArray as $index => $referenceType) { $result = $adb->pquery("insert into vtiger_ws_referencetype(fieldtypeid,type) values(?,?)", array($fieldTypeId, $referenceType)); if (!is_object($result)) { echo "failed for: {$referenceType}, uitype: {$fieldTypeId}"; $success = false; } } } if (!$success) { echo "Migration Query Failed"; break; } } foreach ($fieldTypeInfo as $type => $uitypes) { foreach ($uitypes as $uitype) { $result = $adb->pquery("insert into vtiger_ws_fieldtype(uitype,fieldtype) values(?,?)", array($uitype, $type)); if (!is_object($result)) { "Query for fieldtype details({$uitype}:uitype,{$type}:fieldtype)"; } } } $sql = "select * from vtiger_users"; $updateQuery = "update vtiger_users set accesskey=? where id=?"; $result = $adb->pquery($sql, array()); $rowCount = $adb->num_rows($result); for ($i = 0; $i < $rowCount; $i++) { $userId = $adb->query_result($result, $i, "id"); $insertResult = $adb->pquery($updateQuery, array(vtws_generateRandomAccessKey(16), $userId)); if (!is_object($insertResult)) { echo "failed for user: "******"user_name"); break; } } ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_entity(id integer(11) not null auto_increment PRIMARY\n\t\tKEY,name varchar(25) not null UNIQUE,handler_path varchar(255) NOT NULL,handler_class varchar(64) NOT NULL,\n\t\tismodule int(3) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_entity_name(entity_id integer(11) not null PRIMARY\n\t\tKEY,name_fields varchar(50),index_field varchar(50),table_name varchar(50)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $names = vtws_getModuleNameList(); $moduleHandler = array('file' => 'include/Webservices/VtigerModuleOperation.php', 'class' => 'VtigerModuleOperation'); foreach ($names as $tab) { if (in_array($tab, array('Rss', 'Webmails', 'Recyclebin'))) { continue; } $entityId = $adb->getUniqueID("vtiger_ws_entity"); $adb->pquery('insert into vtiger_ws_entity(id,name,handler_path,handler_class,ismodule) values (?,?,?,?,?)', array($entityId, $tab, $moduleHandler['file'], $moduleHandler['class'], 1)); } $entityId = $adb->getUniqueID("vtiger_ws_entity"); $adb->pquery('insert into vtiger_ws_entity(id,name,handler_path,handler_class,ismodule) values (?,?,?,?,?)', array($entityId, 'Events', $moduleHandler['file'], $moduleHandler['class'], 1)); $entityId = $adb->getUniqueID("vtiger_ws_entity"); $adb->pquery('insert into vtiger_ws_entity(id,name,handler_path,handler_class,ismodule) values (?,?,?,?,?)', array($entityId, 'Users', $moduleHandler['file'], $moduleHandler['class'], 1)); vtws_addDefaultActorTypeEntity('Groups', array('fieldNames' => 'groupname', 'indexField' => 'groupid', 'tableName' => 'vtiger_groups')); ExecuteQuery("CREATE TABLE IF NOT EXISTS `vtiger_ws_entity_tables` (`webservice_entity_id` int(11) NOT NULL ,`table_name` varchar(50) NOT NULL , PRIMARY KEY (`webservice_entity_id`,`table_name`), CONSTRAINT `fk_1_vtiger_ws_actor_tables` FOREIGN KEY (`webservice_entity_id`) REFERENCES `vtiger_ws_entity` (`id`) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8"); ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_entity_fieldtype(fieldtypeid integer(19) not null auto_increment,table_name varchar(50) not null,field_name varchar(50) not null,fieldtype varchar(200) not null,PRIMARY KEY(fieldtypeid),UNIQUE KEY vtiger_idx_1_tablename_fieldname (table_name,field_name)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_entity_referencetype(fieldtypeid integer(19) not null,type varchar(25) not null,PRIMARY KEY(fieldtypeid,type), CONSTRAINT `vtiger_fk_1_actors_referencetype` FOREIGN KEY (`fieldtypeid`) REFERENCES `vtiger_ws_entity_fieldtype` (`fieldtypeid`) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); require_once "include/Webservices/WebServiceError.php"; require_once 'include/Webservices/VtigerWebserviceObject.php'; $webserviceObject = VtigerWebserviceObject::fromName($adb, 'Groups'); ExecuteQuery("insert into vtiger_ws_entity_tables(webservice_entity_id,table_name) values ({$webserviceObject->getEntityId()},'vtiger_groups')"); ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_operation(operationid int(11) not null auto_increment PRIMARY KEY,name varchar(128) \n\tnot null UNIQUE,handler_path varchar(255),handler_method varchar(64), type varchar(8) not null,prelogin int(3) not null, KEY vtiger_idx_ws_oepration_prelogin (prelogin)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); ExecuteQuery("CREATE TABLE IF NOT EXISTS `vtiger_ws_operation_parameters` (`operationid` int(11) NOT NULL, `name` varchar(128) NOT NULL,\n\t\t`type` varchar(64) NOT NULL, sequence int(11) not null,PRIMARY KEY (`operationid`,`name`), CONSTRAINT \n\t\t`vtiger_fk_1_ws_operation_params` FOREIGN KEY (`operationid`) REFERENCES `vtiger_ws_operation` (`operationid`) \n\t\tON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $operationMeta = array("login" => array("include" => array("include/Webservices/Login.php"), "handler" => "vtws_login", "params" => array("username" => "String", "accessKey" => "String"), "prelogin" => 1, "type" => "POST"), "retrieve" => array("include" => array("include/Webservices/Retrieve.php"), "handler" => "vtws_retrieve", "params" => array("id" => "String"), "prelogin" => 0, "type" => "GET"), "create" => array("include" => array("include/Webservices/Create.php"), "handler" => "vtws_create", "params" => array("elementType" => "String", "element" => "encoded"), "prelogin" => 0, "type" => "POST"), "update" => array("include" => array("include/Webservices/Update.php"), "handler" => "vtws_update", "params" => array("element" => "encoded"), "prelogin" => 0, "type" => "POST"), "delete" => array("include" => array("include/Webservices/Delete.php"), "handler" => "vtws_delete", "params" => array("id" => "String"), "prelogin" => 0, "type" => "POST"), "sync" => array("include" => array("include/Webservices/GetUpdates.php"), "handler" => "vtws_sync", "params" => array("modifiedTime" => "DateTime", "elementType" => "String"), "prelogin" => 0, "type" => "GET"), "query" => array("include" => array("include/Webservices/Query.php"), "handler" => "vtws_query", "params" => array("query" => "String"), "prelogin" => 0, "type" => "GET"), "logout" => array("include" => array("include/Webservices/Logout.php"), "handler" => "vtws_logout", "params" => array("sessionName" => "String"), "prelogin" => 0, "type" => "POST"), "listtypes" => array("include" => array("include/Webservices/ModuleTypes.php"), "handler" => "vtws_listtypes", "params" => array(), "prelogin" => 0, "type" => "GET"), "getchallenge" => array("include" => array("include/Webservices/AuthToken.php"), "handler" => "vtws_getchallenge", "params" => array("username" => "String"), "prelogin" => 1, "type" => "GET"), "describe" => array("include" => array("include/Webservices/DescribeObject.php"), "handler" => "vtws_describe", "params" => array("elementType" => "String"), "prelogin" => 0, "type" => "GET"), "extendsession" => array("include" => array("include/Webservices/ExtendSession.php"), "handler" => "vtws_extendSession", 'params' => array(), "prelogin" => 1, "type" => "POST")); $createOperationQuery = "insert into vtiger_ws_operation(operationid,name,handler_path,handler_method,type,prelogin) \n\t\tvalues (?,?,?,?,?,?);"; $createOperationParamsQuery = "insert into vtiger_ws_operation_parameters(operationid,name,type,sequence) \n\t\tvalues (?,?,?,?);"; foreach ($operationMeta as $operationName => $operationDetails) { $operationId = $adb->getUniqueID("vtiger_ws_operation"); $result = $adb->pquery($createOperationQuery, array($operationId, $operationName, $operationDetails['include'], $operationDetails['handler'], $operationDetails['type'], $operationDetails['prelogin'])); $params = $operationDetails['params']; $sequence = 1; foreach ($params as $paramName => $paramType) { $result = $adb->pquery($createOperationParamsQuery, array($operationId, $paramName, $paramType, $sequence++)); } } vtws_addDefaultActorTypeEntity('Currency', array('fieldNames' => 'currency_name', 'indexField' => 'id', 'tableName' => 'vtiger_currency_info')); require_once 'include/Webservices/VtigerWebserviceObject.php'; $webserviceObject = VtigerWebserviceObject::fromName($adb, 'Currency'); ExecuteQuery("insert into vtiger_ws_entity_tables(webservice_entity_id,table_name) values ({$webserviceObject->getEntityId()},'vtiger_currency_info')"); vtws_addDefaultActorTypeEntity('DocumentFolders', array('fieldNames' => 'foldername', 'indexField' => 'folderid', 'tableName' => 'vtiger_attachmentsfolder')); $webserviceObject = VtigerWebserviceObject::fromName($adb, 'DocumentFolders'); ExecuteQuery("insert into vtiger_ws_entity_tables(webservice_entity_id,table_name) values ({$webserviceObject->getEntityId()},'vtiger_attachmentsfolder')"); $success = true; $fieldTypeId = $adb->getUniqueID("vtiger_ws_entity_fieldtype"); $result = $adb->pquery("insert into vtiger_ws_entity_fieldtype(fieldtypeid,table_name,field_name,fieldtype) values(?,?,?,?);", array($fieldTypeId, 'vtiger_attachmentsfolder', 'createdby', "reference")); if (!is_object($result)) { echo "failed fo init<br>"; $success = false; } $result = $adb->pquery("insert into vtiger_ws_entity_referencetype(fieldtypeid,type) values(?,?)", array($fieldTypeId, 'Users')); if (!is_object($result)) { echo "failed for: Users, fieldtypeid: {$fieldTypeId}"; $success = false; } if (!$success) { echo "Migration Query Failed"; } }
function createAccessKey() { global $adb, $log; $log->info("Entering Into function createAccessKey()"); $updateQuery = "update vtiger_users set accesskey=? where id=?"; $insertResult = $adb->pquery($updateQuery, array(vtws_generateRandomAccessKey(16), $this->id)); $log->info("Exiting function createAccessKey()"); }
/** * Function creates default user's Role, Profiles */ public function setDefaultUsersAccess() { $adminPassword = $_SESSION['config_file_info']['password']; $userDateFormat = $_SESSION['config_file_info']['dateformat']; $userTimeZone = $_SESSION['config_file_info']['timezone']; $userFirstName = $_SESSION['config_file_info']['firstname']; $userLastName = $_SESSION['config_file_info']['lastname']; $adminEmail = $_SESSION['config_file_info']['admin_email']; $adb = PearDatabase::getInstance(); $adb->pquery("UPDATE vtiger_users SET date_format = ?, time_zone = ?, first_name = ?, last_name = ?, email1 = ?, accesskey = ?, language = ?", array($userDateFormat, $userTimeZone, $userFirstName, $userLastName, $adminEmail, vtws_generateRandomAccessKey(16), $_SESSION['default_language'])); $newUser = new Users(); $newUser->retrieve_entity_info(1, 'Users'); $newUser->change_password('admin', $adminPassword, false); require_once 'modules/Users/CreateUserPrivilegeFile.php'; createUserPrivilegesfile(1); }