. * */ namespace SP; defined('APP_ROOT') || die(_('No es posible acceder directamente a este archivo')); /** * Esta clase es la encargada de importar cuentas desde sysPass */ class SyspassImport extends XmlImportBase { /** * Mapeo de categorías. * * @var array */ private $_categories = array(); /** * Mapeo de clientes. * * @var array */ private $_customers = array(); /** * Iniciar la importación desde sysPass. * * @throws SPException * @return bool */ public function doImport() { try { $this->processCategories(); $this->processCustomers(); $this->processAccounts(); } catch (SPException $e){ return false; } return true; } /** * Obtener los datos de las entradas de sysPass y crearlas. */ protected function processAccounts() { foreach ($this->_xml->Accounts as $entry) { $account = $entry->Account; $this->setAccountName($account->name); $this->setAccountLogin($account->login); $this->setCategoryId($this->_categories[$account->categoryId]); $this->setCustomerId($this->_customers[$account->customerId]); $this->setAccountUrl($account->url); $this->setAccountLogin($account->login); $this->setAccountPass($account->pass); $this->setAccountPassIV($account->passiv); $this->setAccountNotes($account->notes); $this->addAccount(); } } /** * Obtener las categorías y añadirlas a sysPass. */ protected function processCategories() { foreach ($this->_xml->Categories as $category) { $this->setCustomerName($category->name); $this->setCategoryDescription($category->description); $this->_categories[$category['id']] = $this->addCategory(); } } /** * Obtener los clientes y añadirlos a sysPass. */ protected function processCustomers() { foreach ($this->_xml->Customers as $customer) { $this->setCustomerName($customer->name); $this->setCustomerDescription($customer->description); $this->_customers[$customer['id']] = $this->addCustomer(); } } }