/** * Supprime de façon logique tous les modules installés. */ public static function reset() { $cacheFile = self::_getCompiledFileName(); if (is_file($cacheFile)) { unlink($cacheFile); } if (self::_dbConfigured()) { _ioDAO('copix:CopixModule')->deleteBy(_daoSP()); } CopixListenerFactory::clearCompiledFile(); }
/** * Retourne les logs sous forme d'idérateur * * @param string $pProfil Nom du profil dont on souhaite afficher le contenu * @param int $pNbItems Nombres d'items à afficher * @return Iterator */ public function getLog($pProfil, $pNbItems = 20) { // Mise en place des limites $page = CopixSession::get('log|numpage') - 1; $start = $page * $pNbItems; // Création du Search Params $sp = _daoSP()->addCondition('profile', '=', $pProfil)->orderBy(array('date', 'DESC')); $dbNbLines = _ioDAO('copixlog')->countBy($sp); CopixSession::set('log|nbpage', ceil($dbNbLines / $pNbItems)); $sp = $sp->setLimit($start, $pNbItems); return _ioDAO('copixlog')->findBy($sp); }
/** * Vérifie que l'on est bien authentifié (A voir). */ public function beforeAction() { $pServiceName = CopixRequest::get('wsname'); $this->_path = CopixModule::getPath('wsserver'); if (isset($pServiceName)) { $this->_wsname = $pServiceName; $arRes = _ioDAO('wsservices')->findBy(_daoSP()->addCondition('name_wsservices', '=', $pServiceName)); if (count($arRes) == 0) { throw new CopixException('Service introuvable ' . htmlentities($pServiceName)); } $wsServiceInfo = $arRes[0]; $this->_exportModule = $wsServiceInfo->module_wsservices; $this->_exportClass = $wsServiceInfo->class_wsservices; $this->_exportClassFilename = CopixModule::getPath($this->_exportModule) . COPIX_CLASSES_DIR . strtolower($wsServiceInfo->file_wsservices); } else { $this->_exportModule = CopixConfig::get('wsserver|exportedModule'); $this->_exportClass = CopixConfig::get('wsserver|exportedClass'); $this->_exportClassFilename = CopixModule::getPath($this->_exportModule) . COPIX_CLASSES_DIR . strtolower(CopixConfig::get('wsserver|exportedClassFile')); } }
public function setUp() { $copixConfig = CopixConfig::instance(); $this->_userHandlers = $copixConfig->copixauth_getRegisteredUserHandlers(); $copixConfig->copixauth_clearUserHandlers(); $copixConfig->copixauth_registerUserHandler(array('name' => 'auth|dbuserhandler', 'priority' => 10, 'required' => false)); $this->_groupHandlers = $copixConfig->copixauth_getRegisteredGroupHandlers(); $copixConfig->copixauth_clearGroupHandlers(); $this->_credentialHandlers = $copixConfig->copixauth_getRegisteredCredentialHandlers(); $copixConfig->copixauth_clearCredentialHandlers(); $sp = _daoSP(); $sp->addCondition('login_dbuser', '=', 'CopixTest'); _dao('dbuser')->deleteBy($sp); $record = _record('dbuser'); $record->login_dbuser = '******'; $record->password_dbuser = md5('CopixTestPassword'); $record->enabled_dbuser = 1; $record->email_dbuser = '******'; _dao('dbuser')->insert($record); $this->_userId = $record->id_dbuser; }
public function registerCredential($pName, $pValues = array()) { $result = _dao('dynamiccredentials')->findBy(_daoSP()->addCondition('name_dc', '=', $pName)); if (!isset($result[0])) { $record = _record('dynamiccredentials'); $record->name_dc = $pName; _dao('dynamiccredentials')->insert($record); } else { $record = $result[0]; } foreach ($pValues as $key => $value) { $resultValue = _dao('dynamiccredentialsvalues')->findBy(_daoSP()->addCondition('value_dcv', '=', $key)->addCondition('id_dc', '=', $record->id_dc)); if (!isset($resultValue[0])) { $recordValue = _record('dynamiccredentialsvalues'); $recordValue->id_dc = $record->id_dc; $recordValue->value_dcv = $key; $recordValue->level_dcv = $value; _dao('dynamiccredentialsvalues')->insert($recordValue); } else { } } }
/** * Get the configVars from dao group array * We will not load values that do not exists in the XML file. * We will only load the values of the config variables, not their captions or so. * We remind that the database here is just a _Saving_ purpose in case the "temp" directory is deleted. * We will test the presence of the CopixDB plugin to store values in the database. */ private function _loadFromDatabase() { if (!$this->_checkDBConnection()) { return; } $arVars = _ioDAO('copix:CopixConfig')->findBy(_daoSP()->addCondition('module_ccfg', '=', $this->module)); foreach ($arVars as $vars) { $arExplode = explode('|', $vars->id_ccfg); $paramName = $arExplode[count($arExplode) - 1]; $paramInfos = $this->_getParam($paramName); if (isset($this->_configVars[$vars->id_ccfg])) { $this->_configVars[$vars->id_ccfg]['Value'] = $vars->value_ccfg; $listValues = $this->_strToArray($paramInfos['ListValues']); switch ($paramInfos['Type']) { case 'select': case 'multiSelect': $valueStr = isset($listValues[$vars->value_ccfg]) ? $listValues[$vars->value_ccfg] : $vars->value_ccfg; break; case 'bool': $valueStr = $vars->value_ccfg == 0 ? _i18n('copix:copix.no') : _i18n('copix:copix.yes'); break; default: $valueStr = $vars->value_ccfg; break; } $this->_configVars[$vars->id_ccfg]['ValueStr'] = $valueStr; } if (isset($this->_values[$vars->id_ccfg])) { $this->_values[$vars->id_ccfg] = $vars->value_ccfg; } } }
/** * Effectue une recherche * * @param int $pPage Numéro de la page à retourner * @param string $pOrder Order de tri * @param string $pSens Type de tri : ASC ou DESC * @return array */ public function find($pPage = 0, $pOrder = null, $pSens = 'ASC') { if ($pOrder != null) { $this->_sp->orderBy(array($pOrder, $pSens)); } if ($this->_max !== null) { if ($this->_max != 0) { $this->_nbrecord = $this->_dao->countBy($this->_sp); $this->_nbpages = ceil($this->_nbrecord / $this->_max); } $this->_sp->setLimit($this->_max * $pPage, $this->_max); } $results = $this->_dao->findBy($this->_sp); $this->_sp = _daoSP(); return $results->fetchAll(); }
public function testDateTimeOverloaded() { _dao('copixtest|datetimetests_overloaded')->deleteBy(_daoSp()); $record = _record('copixtest|datetimetests_overloaded'); $record->date_dtt = '20071121'; $record->datetime_dtt = '20071129101222'; $record->time_dtt = '101222'; _dao('copixtest|datetimetests_overloaded')->insert($record); $record = _record('copixtest|datetimetests_overloaded'); $record->date_dtt = '20071120'; $record->datetime_dtt = '20071120101242'; $record->time_dtt = '101242'; _dao('copixtest|datetimetests_overloaded')->insert($record); $recordGot = _dao('copixtest|datetimetests_overloaded')->get($record->id_dtt); $this->assertEquals($recordGot->date_dtt, '20071120'); $results = _dao('copixtest|datetimetests_overloaded')->findAll(); //premier enregistrement $this->assertEquals($results[0]->date_dtt, '20071121'); $this->assertEquals($results[0]->datetime_dtt, '20071129101222'); $this->assertEquals($results[0]->time_dtt, '101222'); //second enregistrement $this->assertEquals($results[1]->date_dtt, '20071120'); $this->assertEquals($results[1]->datetime_dtt, '20071120101242'); $this->assertEquals($results[1]->time_dtt, '101242'); //vérification des findBy //doit récupérer le premier enregistrement $sp = _daoSP()->addCondition('date_dtt', '=', '20071121'); $results = _dao('copixtest|datetimetests_overloaded')->findBy($sp); $this->assertEquals(count($results), 1); $this->assertEquals($results[0]->date_dtt, '20071121'); $this->assertEquals($results[0]->datetime_dtt, '20071129101222'); $this->assertEquals($results[0]->time_dtt, '101222'); $sp = _daoSP()->addCondition('datetime_dtt', '=', '20071129101222'); $results = _dao('copixtest|datetimetests_overloaded')->findBy($sp); $this->assertEquals(count($results), 1); $this->assertEquals($results[0]->date_dtt, '20071121'); $this->assertEquals($results[0]->datetime_dtt, '20071129101222'); $this->assertEquals($results[0]->time_dtt, '101222'); $sp = _daoSP()->addCondition('time_dtt', '=', '101222'); $results = _dao('copixtest|datetimetests_overloaded')->findBy($sp); $this->assertEquals(count($results), 1); $this->assertEquals($results[0]->date_dtt, '20071121'); $this->assertEquals($results[0]->datetime_dtt, '20071129101222'); $this->assertEquals($results[0]->time_dtt, '101222'); //doit récupérer le second enregistrement $sp = _daoSP()->addCondition('date_dtt', '=', '20071120'); $results = _dao('copixtest|datetimetests_overloaded')->findBy($sp); $this->assertEquals(count($results), 1); $this->assertEquals($results[0]->date_dtt, '20071120'); $this->assertEquals($results[0]->datetime_dtt, '20071120101242'); $this->assertEquals($results[0]->time_dtt, '101242'); $sp = _daoSP()->addCondition('datetime_dtt', '=', '20071120101242'); $results = _dao('copixtest|datetimetests_overloaded')->findBy($sp); $this->assertEquals(count($results), 1); $this->assertEquals($results[0]->date_dtt, '20071120'); $this->assertEquals($results[0]->datetime_dtt, '20071120101242'); $this->assertEquals($results[0]->time_dtt, '101242'); $sp = _daoSP()->addCondition('time_dtt', '=', '101242'); $results = _dao('copixtest|datetimetests_overloaded')->findBy($sp); $this->assertEquals(count($results), 1); $this->assertEquals($results[0]->date_dtt, '20071120'); $this->assertEquals($results[0]->datetime_dtt, '20071120101242'); $this->assertEquals($results[0]->time_dtt, '101242'); }
/** * Permet d'exporter les classes des modukes * * @return CopixActionReturn */ public function processExportClass() { $pModuleName = CopixRequest::get('moduleName'); $pClassFileName = CopixRequest::get('classFileName'); // si on a confirmé l'ajout if (CopixRequest::get('confirm')) { $pServiceName = trim(CopixRequest::get('serviceName')); $pClassName = CopixRequest::get('className'); $pClassFileName = _request('classFileName'); $pModuleName = _request('moduleName'); // nom de service vide if ($pServiceName == '') { return _arRedirect(_url('admin|ExportClass', array('error' => 'serviceEmpty', 'moduleName' => $pModuleName, 'classFileName' => $pClassFileName))); } // verification si on n'a pas déja un service de ce nom $wsservices = _ioDao('wsservices')->findBy(_daoSP()->addCondition('name_wsservices', '=', $pServiceName)); if (count($wsservices) > 0) { return _arRedirect(_url('admin|ExportClass', array('error' => 'serviceExists', 'moduleName' => $pModuleName, 'classFileName' => $pClassFileName))); } CopixDB::getConnection()->doQuery("insert into wsservices (name_wsservices, module_wsservices, file_wsservices, class_wsservices) values ('" . $pServiceName . "','" . $pModuleName . "','" . $pClassFileName . "', '" . $pClassName . "')"); $res = 'Url du Webservice : <a href="' . _url('wsserver||', array('wsname' => $pServiceName)) . '">' . _url('wsserver||', array('wsname' => $pServiceName)) . '</a><br/>' . "\n"; $res .= 'Url du fichier wsdl : <a href="' . _url('wsserver|default|wsdl', array('wsname' => $pServiceName)) . '">' . _url('wsserver|default|wsdl', array('wsname' => $pServiceName)) . '</a><br/>' . "\n"; $res .= '<br />'; $res .= '<input type="button" value="' . _i18n('wsserver.back') . '" onclick="javascript: document.location=\'' . _url('admin|manageWebServices') . '\';" />'; $tpl = new CopixTpl(); $tpl->assign('MAIN', $res); return new CopixActionReturn(CopixActionReturn::DISPLAY, $tpl); // si on doit afficher le formulaire d'ajout } else { $ppo = new CopixPPO(); $ppo->TITLE_PAGE = _i18n('wsserver.title.manageWebServices'); $ppo->classFileName = $pClassFileName; $ppo->arErrors = array(); // erreur "service existant" passée en paramètre if (_request('error') !== null) { $ppo->arErrors[] = _i18n('wsserver.error.' . _request('error')); } $ppo->ModuleName = $pModuleName; $arBefore = get_declared_classes(); include CopixModule::getPath($pModuleName) . COPIX_CLASSES_DIR . $pClassFileName; $arAfter = get_declared_classes(); $arClass = array_diff($arAfter, $arBefore); sort($arClass); if (count($arClass) == 0) { throw new Exception('Pas de classe à exporter'); } $ppo->arClass = $arClass; return _arPPO($ppo, 'wsservices.add.php'); } }
/** * Efface tous les droits associés a un id_dc ou un id_dcv */ public function processDelete() { $id_dc = _request('id_dc'); if ($id_dc !== null) { _dao('dynamiccredentials')->delete($id_dc); _dao('dynamiccredentialsvalues')->deleteBy(_daoSP()->addCondition('id_dc', '=', $id_dc)); _dao('dynamiccredentialsgroups')->deleteBy(_daoSP()->addCondition('id_dc', '=', $id_dc)); } $id_dcv = _request('id_dcv'); if ($id_dcv !== null) { _dao('dynamiccredentialsvalues')->delete($id_dcv); _dao('dynamiccredentialsgroups')->deleteBy(_daoSP()->addCondition('id_dcv', '=', $id_dcv)); } return _arRedirect(_url('auth|dynamic|list', array('id_group' => _request('id_group'), 'handler_group' => _request('handler_group'), 'url_return' => _request('url_return')))); }
/** * Editer un captcha */ public function processEditCaptcha() { CopixRequest::assert('captchaid'); if (CopixRequest::getInt('confirm') == 1) { $arrCaptcha = _ioDAO('commentscaptcha')->findBy(_daoSP()->addCondition("captcha_id", "=", _request('captchaid'))); $objCaptcha = $arrCaptcha[0]; $objCaptcha->captcha_question = _request('captcha_question'); $objCaptcha->captcha_answer = _request('captcha_answer'); _ioDAO('commentscaptcha')->update($objCaptcha); return _arRedirect(_url('comments|admin|listcaptcha')); } else { $ppo = new CopixPPO(); $ppo->TITLE_PAGE = _i18n('comments.admin.captchalist'); $ppo->arrCaptcha = _ioDAO('commentscaptcha')->findall(); $ppo->editedCaptcha = _request('captchaid'); return _arPPO($ppo, 'captcha.list.tpl'); } }