104 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
session_start();
 | 
						|
unset($_SESSION);
 | 
						|
 | 
						|
// Import Core Interfaces
 | 
						|
require_once('../../modules/InterfaceConfig.php');
 | 
						|
require_once('../../modules/InterfacePostgreSQL.php');
 | 
						|
 | 
						|
// Import Core Classes
 | 
						|
require_once('../../modules/ClassConfig.php');
 | 
						|
require_once('../../modules/ClassUser.php');
 | 
						|
require_once('../../modules/ClassCountry.php');
 | 
						|
require_once('../../modules/ClassCurrency.php');
 | 
						|
require_once('../../modules/ClassLang.php');
 | 
						|
 | 
						|
// Import Custom Classes
 | 
						|
require_once('../../custom/modules/ClassUserCustom.php');
 | 
						|
require_once('../../custom/modules/ClassERP.php');
 | 
						|
require_once('../../custom/modules/ripcord.php');
 | 
						|
echo "test";
 | 
						|
 | 
						|
 | 
						|
$oConf = new ClassConfig();
 | 
						|
$oUser = new ClassUserCustom();
 | 
						|
$oCountry = new ClassCountry();
 | 
						|
$oCurrency = new ClassCurrency();
 | 
						|
$oLang = new ClassLang();
 | 
						|
$oERP = new ClassERP();
 | 
						|
 | 
						|
// Create session arrays
 | 
						|
if (!isset($_SESSION['config'])) {
 | 
						|
    $_SESSION['config'] = $oConf->getConfig();
 | 
						|
    $_SESSION['erp'] = $oERP->getConfig();
 | 
						|
    //$_SESSION['translations'] = $oTrans->listTranslations($_SESSION['config']['default_lang_code']);
 | 
						|
    //$_SESSION['countries'] = $oCountry->listCountries('priority ASC, name ASC');
 | 
						|
    //$_SESSION['activeCountries'] = $oCountry->listActiveCountries('priority ASC, name ASC');
 | 
						|
    //$_SESSION['currencies'] = $oCurrency->listCurrencies('priority ASC, name ASC');
 | 
						|
    //$_SESSION['languages'] = $oLang->listLanguages();
 | 
						|
    //$_SESSION['activeLanguages'] = $oLang->listActiveLanguages();
 | 
						|
}
 | 
						|
 | 
						|
// Open connection with Odoo
 | 
						|
$url = $_SESSION['erp']['url'];
 | 
						|
$db = $_SESSION['erp']['db'];
 | 
						|
$username = $_SESSION['erp']['admin_user'];
 | 
						|
$password = $_SESSION['erp']['admin_password'];
 | 
						|
 | 
						|
$common = ripcord::client($url."xmlrpc/2/common");
 | 
						|
$uid = $common->authenticate($db, $username, $password, array());
 | 
						|
$models = ripcord::client($url."xmlrpc/2/object");
 | 
						|
 | 
						|
// Step 1. Create user admin@wefra
 | 
						|
$data = array('formRegisterFieldPassword'=>'admin', 'formRegisterFieldConfirmPassword'=>'admin', 'formRegisterFieldFirstname'=>'Admin', 'formRegisterFieldLastname'=>'Wefra',
 | 
						|
              'formRegisterFieldEmail'=>'admin@wefra', 'formRegisterFieldCountry'=>44);
 | 
						|
 | 
						|
$name = $data['formRegisterFieldFirstname'].' '.$data['formRegisterFieldLastname'];
 | 
						|
 | 
						|
//create user in ERP
 | 
						|
$ext_id = $models->execute_kw($db, $uid, $password, 'res.users', 'create',
 | 
						|
                              array(array('name'=>$name,
 | 
						|
                                          'email'=>$data['formRegisterFieldEmail'],
 | 
						|
                                          'login'=>$data['formRegisterFieldEmail'], //yes, the login IS the email, there is no mistake here
 | 
						|
                                          'country_id'=>(integer) $models->execute_kw($db, $uid, $password, 'res.country', 'search', array(array(array('code', '=', 'CH'))))[0],
 | 
						|
                                          'project_task_level_id'=>(integer) $models->execute_kw($db, $uid, $password, 'project.task.level', 'search', array(array(array('name', '=', 'White Belt'))))[0]
 | 
						|
                                          )));
 | 
						|
 | 
						|
echo "ext_id has value: ";
 | 
						|
print_r($ext_id);
 | 
						|
echo "<br><br>";
 | 
						|
 | 
						|
//if user created in ERP, then create it in Wefra with password linked
 | 
						|
if(isset($ext_id) and !is_array($ext_id)){
 | 
						|
  //create user in Wefra and link the user to ERP
 | 
						|
  $user = $oUser->createUserForWefraAdmin($data, $ext_id);
 | 
						|
  echo "Wefra user status: ";
 | 
						|
  print_r($user);
 | 
						|
  echo "<br><br>";
 | 
						|
  
 | 
						|
  if($user){
 | 
						|
    //update the password for user in ERP
 | 
						|
    //..
 | 
						|
    $getUser = $oUser->getUser($user['user_id']);
 | 
						|
    $models->execute_kw($db, $uid, $password, 'res.users', 'write', array(array($ext_id), array('password'=>$getUser['password'], 'password_uncrypted'=>$data['formRegisterFieldPassword'])));
 | 
						|
    //..
 | 
						|
    //that way, ERP rights will be checked everytime Wefra will use ORM to allow user to to actions which will have an influence in the ERP (ie. get a task which will be assigned to his ERP's user related)
 | 
						|
    $message['content'] = '<span style="color:green"><b>Success: </b><p>User Admin Wefra has been created in globsi-admin</p>';
 | 
						|
  } else {
 | 
						|
    echo '<span style="color:red"><b>Failure: </b><p>User Admin Wefra could not been created in globsi-admin</p>';
 | 
						|
    
 | 
						|
  }
 | 
						|
  //display a confirmation message that everything went well
 | 
						|
  $message['content'] = '<span style="color:green"><b>Success: </b><p>User Admin Wefra has been created in globsi-backend</p>';
 | 
						|
} else {
 | 
						|
  //if user not created in ERP, displaying a warning message to ask for a new try
 | 
						|
  $message['content'] = '<span style="color:red"><b>Failure: </b><p>User Admin Wefra could not been created in globsi-backend</p>';
 | 
						|
}
 | 
						|
 | 
						|
echo $message['content'];
 | 
						|
 | 
						|
echo "<br><br>Session Config<br>";
 | 
						|
print_r($_SESSION['config']);
 | 
						|
echo "<br><br>Session ERP<br>";
 | 
						|
print_r($_SESSION['erp']);
 |