/** * creates/updates settings * * @return array created/updated settings */ public function saveSettings($recordData) { $result = Expressodriver_Controller::getInstance()->saveConfigSettings($recordData); return $result; }
/** * set credentials for given adapter * * @param string $adapterName * @param string $password * @return array */ public function setCredentials($adapterName, $password) { return Expressodriver_Controller::getInstance()->setCredentials($adapterName, $password); }
/** * get an adapter instance according to the path * * pathParts: * [0] => * [1] => external * [2] => accountLogin * [3] => adapterName * [4..] => path in backend * * @param string $_path * @return Expressodriver_Backend_Adapter_Interface * @throws Expressodriver_Exception */ public function getAdapterBackend($_path) { $pathParts = explode('/', $_path); $adapterName = $pathParts[1]; if (!isset(self::$_backends[$adapterName])) { $adapter = null; $config = Expressodriver_Controller::getInstance()->getConfigSettings(); foreach ($config['adapters'] as $adapterConfig) { if ($adapterName === $adapterConfig['name']) { $adapter = $adapterConfig; } } if (!is_null($adapter)) { $credentialsBackend = Tinebase_Auth_CredentialCache::getInstance(); $userCredentialCache = Tinebase_Core::getUserCredentialCache(); $credentialsBackend->getCachedCredentials($userCredentialCache); $username = $adapter['useEmailAsLoginName'] ? Tinebase_Core::getUser()->accountEmailAddress : Tinebase_Core::getUser()->accountLoginName; $options = array('host' => $adapter['url'], 'user' => $username, 'password' => $userCredentialCache->password, 'root' => '/', 'name' => $adapter['name'], 'useCache' => $config['default']['useCache'], 'cacheLifetime' => $config['default']['cacheLifetime']); self::$_backends[$adapterName] = Expressodriver_Backend_Storage_Abstract::factory($adapter['adapter'], $options); } else { throw new Expressodriver_Exception('Adapter config does not exists'); } } return self::$_backends[$adapterName]; }