public function processGetTable() { $ppo = new CopixPPO(); // Si c'est pour de l'ajax if (CopixRequest::get('url') == null) { try { //Recup les données $id = CopixRequest::get('table_id'); $table = CopixListFactory::get($id); if (CopixRequest::get('submit') !== 'false') { $table->getFromRequest(); } //On génère le HTML $ppo->MAIN = $table->generateTable(); } catch (Exception $e) { //En cas d'erreur en etant en ajax, on renvoi l'erreur $ppo->MAIN = $e->getMessage(); return _arDirectPPO($ppo, 'blank.tpl'); } return _arDirectPPO($ppo, 'blank.tpl'); //Si c'est pas en ajax } else { //On récup les données $id = CopixRequest::get('table_id'); $table = CopixListFactory::get($id); if (CopixRequest::get('submit') !== 'false') { $table->getFromRequest(); } //Et on redirige return _arRedirect(_url(CopixRequest::get('url'))); } }
/** * */ public function processLaunch() { //Si aucun test n'est donné, on redirige vers la page de choix if (($test = _request('tests')) === null) { return _arRedirect(_url('unittest|')); } //Si on a demandé à lancer les tests avec Ajax, on génère le template d'appel pour chaque élément if (_request('ajax')) { $ppo = new CopixPpo(); $ppo->TITLE_PAGE = 'Lancements des tests unitaires'; $ppo->arTests = $this->_getTest(); return _arPpo($ppo, 'tests.launch.php'); } else { //on a pas demandé d'appel type ajax, donc on lance directement les tests demandés. if (CopixAjax::isAJAXRequest()) { } else { //C'est une demande normale, la réponse sera de type HTML $more = ''; } } //On lance enfin la demande de test $httpClientRequest = new CopixHTTPClientRequest(CopixUrl::appendToUrl(_url() . 'test.php', array('tests' => $test, 'xml' => CopixAjax::isAJAXRequest()))); $httpClient = new CopixHttpClient(); $response = $httpClient->launch($httpClientRequest); return _arContent($response[0]->getBody(), array('content-type' => 'text/html')); }
/** * Actiongroup qui permet de gérer la suppression * */ public function processDelete() { $form = CopixFormFactory::get(_request('form_id')); $form->delete(CopixRequest::asArray()); $url = _request('url'); return _arRedirect(_url($url)); }
/** * Par défaut, on redirige vers l'url d'accueil définie dans les paramètres */ public function processDefault() { $home = CopixConfig::get('|homePage'); if (strpos($home, 'http://') !== 0) { $home = _url() . $home; } return _arRedirect($home); }
/** * Supression d'un plugin de la liste des plugins enregistrés */ public function processRemovePlugin() { //on regarde si le plugin fait parti des plugins déja enregistrés $arPluginsConfiguration = array(); if (in_array($pluginName = CopixRequest::get('plugin'), $arPlugins = CopixConfig::instance()->plugin_getRegistered())) { foreach ($arPlugins as $plugin) { if ($plugin != $pluginName) { $arPluginsConfiguration[] = $plugin; } } _class('PluginsConfigurationFile')->write($arPluginsConfiguration); } return _arRedirect(_url('plugin|')); }
/** * Supression d'une variable de session. */ public function processRemove() { $namespace = CopixRequest::get('for_namespace'); $key = CopixRequest::get('key'); if ($namespace !== null) { if ($key !== null) { unset($_SESSION['COPIX'][$namespace][$key]); } else { unset($_SESSION['COPIX'][$namespace]); } } else { if (isset($_SESSION[$key])) { unset($_SESSION[$key]); } } return _arRedirect(_url(CopixRequest::get('popup') ? 'admin|session|popup' : 'admin|session|')); }
/** * Ajout d'un commentaire dans la base après vérification des droits d'écriture * et que l'on a bien la bonne session */ public function processAddComment() { //Vérifie que l'on a bien un paramètre id CopixRequest::assert('id'); if (($informations = _ioClass('commentsservices')->getEnabled(_request('id'))) === false) { throw new Exception(_i18n('comments.error.badidsession')); } //_log ('FROMPAGE: '.$informations['fromPage']); //_log ('POUR ID: '._request ('id')); //vérifie les droits d'écriture if ($informations['writeCredential'] != "") { CopixAuth::getCurrentUser()->assertCredential($informations['writeCredential']); } //Ajout du commentaire $objComment = _record('comments'); $objComment->content_comment = _request('content'); $objComment->format_comment = 'TEXT'; //aujourd'hui on ne supporte que le format text pour les commentaires $objComment->authorlogin_comment = _request('author'); $objComment->authoremail_comment = _request('mail'); $objComment->authorsite_comment = _request('site'); $objComment->page_comment = $informations['id']; $objComment->date_comment = date('YmdHis'); if (CopixConfig::get('comments|captcha') != 0) { $objComment->captcha_id = _request('captcha_id'); $objComment->captcha_answer = _request('captcha_answer'); } try { if (_request('preview') === null) { _ioDAO('comments')->insert($objComment); _ioClass('commentsservices')->removeEnabled($informations['id']); _notify('Content', array('id' => $informations['id'], 'kind' => 'comment', 'keywords' => null, 'title' => $informations['id'], 'summary' => null, 'content' => $objComment->content_comment, 'url' => $informations['fromPage'])); return _arRedirect($informations['fromPage']); } else { _ioClass('commentsservices')->updateEnabled($objComment); return _arRedirect(_url($informations['fromPage'], array('preview' => 1, 'comments' => 'list'))); } } catch (CopixDAOCheckException $e) { _ioClass('commentsservices')->updateEnabled($objComment); return _arRedirect(_url($informations['fromPage'], array('errors' => 1, 'comments' => 'list'))); } }
/** * Fonction permettant d'afficher une exception à l'écran. * Principalement destinée à l'utilisation interne, pas nécessairement à l'utilisation depuis l'url * */ public function processException() { CopixRequest::assert('exception'); $e = _request('exception'); //Absolument impossible dans le contexte normal d'utilisation, $e est nécessairement une exception //catchée par le processus. if (!$e instanceof Exception) { return _arRedirect(_url('||')); } $ppo = new CopixPPO(); $ppo->TITLE_PAGE = _request('TITLE_PAGE', get_class($e)); switch (get_class($e)) { case 'CopixDAOCheckException': $ppo->message = sprintf('Une erreur de validation est survenue avec le message [%s]', implode(', ', $e->getErrors())); break; default: $ppo->message = $e->getMessage(); } $ppo->type = get_class($e); $ppo->file = $e->getFile(); $ppo->line = $e->getLine(); $ppo->trace = $e->getTrace(); $ppo->id = uniqid(); $ppo->urlBack = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; switch (CopixConfig::instance()->getMode()) { case CopixConfig::DEVEL: $ppo->mode = 'DEVEL'; break; case CopixConfig::PRODUCTION: $ppo->mode = 'FORCE_INITIALISATION'; break; case CopixConfig::FORCE_INITIALISATION: $ppo->mode = 'FORCE_INITIALISATION'; break; default: $ppo->mode = 'UNKNOW'; break; } return _arPpo($ppo, 'default|exception.tpl'); }
/** * On retourne sur la page de choix des tests unitaires à lancer */ public function processDefault() { return _arRedirect(_url('unittest|')); }
/** * Sélection d'un module et redirection vers la page par défaut * (simplement pour éviter les problèmes de rafraichissement de page) */ public function processSelectModule() { return _arRedirect(_url('admin|parameters|', CopixRequest::get('choiceModule') !== null ? array('choiceModule' => CopixRequest::get('choiceModule')) : array())); }
/** * Effacer une aide simple * */ public function processDelete() { if (CopixRequest::get('id_sh', null) === null) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => _i18n('simplehelp.error.missingParameters'), 'back' => _url('simplehelp|admin|listAide'))); } $dao = _ioDao('simplehelp'); if (!($toDelete = $dao->get(CopixRequest::get('id_sh')))) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => _i18n('simplehelp.unableToFind'), 'back' => _url('simplehelp|admin|listAide'))); } //Confirmation screen ? if (CopixRequest::get('confirm', null) === null) { return CopixActionGroup::process('generictools|Messages::getConfirm', array('title' => _i18n('simplehelp.title.confirmdelevent'), 'message' => _i18n('simplehelp.message.confirmdelevent'), 'confirm' => _url('simplehelp|admin|delete', array('id_sh' => $toDelete->id_sh, 'confirm' => '1')), 'cancel' => _url('simplehelp|admin|listAide'))); } //Delete aide $dao->delete($toDelete->id_sh); return _arRedirect(_url('simplehelp|admin|listAide')); }
/** * Set the home page of the web site */ public function processsetHomePage() { if (_request('id') !== null) { CopixConfig::set('|homePage', _url('cms|default|get', array('id' => CopixRequest::get('id'), 'online' => 'true'))); } elseif (($url = CopixRequest::get('urlinput')) !== null) { CopixConfig::set('|homePage', $url); } else { return CopixActionGroup::process('generictools|Messages::getError', array('message' => _i18n('error|error.specifyid'), 'back' => _url('admin||'))); } return _arRedirect(_url('admin||')); }
public function processDefault() { return _arRedirect(_url('|getHome')); }
/** * Catch les exceptions de check de formulaire générées dans le process de l'actiongroup * * @param object $pException Exception * @return object CopixActionReturn */ public function _catchActionExceptions($pException) { if ($pException instanceof CopixFormCheckException) { $urlParams['mode_' . _request('form_id')] = 'edit'; $urlParams['error_' . _request('form_id')] = true; $this->_form->setErrors($pException->getErrors()); return _arRedirect(_url(_request('url'), $urlParams)); } else { return $this->catchActionExceptions($pException); } }
/** * Définition du thème à utiliser */ public function processDoSelectTheme() { $theme = _request('id_ctpt', null, true); CopixConfig::set('defaultThemeId', $theme); return _arRedirect(_url('admin|themes|')); }
/** * Validation des modifications apportées sur un utilisateur */ public function processValid() { //$user = new stdClass (); $user = _record('dbuser'); $user->login_dbuser = _request('login_dbuser', ''); $user->email_dbuser = _request('email_dbuser'); $errors = array(); //on vérifie si le login n'est pas déja pris $sp = _daoSp(); $sp->addCondition('login_dbuser', '=', $user->login_dbuser); if ($user->login_dbuser === '') { $errors['loginEmpty'] = 1; } if (count(_ioDAO('dbuser')->findBy($sp))) { $errors['loginNotAvailable'] = 1; } //on vérifie si un mot de passe est donné qu'ils soient bien identiques if (CopixRequest::get('password_dbuser')) { if (CopixRequest::get('password_dbuser') != CopixRequest::get('password_confirmation_dbuser')) { $errors['passwordDoNotMatch'] = 1; } else { $user->password_dbuser = md5(CopixRequest::get('password_dbuser')); } } else { //Comme c'est automatiquement un nouvel utilisateur, il est obligatoire de saisir un nouveau mot de passe. $errors['passwordEmpty'] = 1; } if (Copixconfig::get('auth|typeConfirm') == "email") { if (!$user->email_dbuser) { $errors['emailEmpty'] = 1; } else { try { CopixFormatter::getMail($user->email_dbuser); } catch (CopixException $e) { $errors['emailIsBad'] = 1; } } } if (Copixconfig::get('auth|typeConfirm') == "email") { $user->enabled_dbuser = 0; } else { $user->enabled_dbuser = 1; } //Si le module imageprotect est activé test la protection anti-spam if (CopixModule::isEnabled('antispam')) { CopixRequest::assert('confirmcode_dbuser'); CopixRequest::assert('idcode_dbuser'); $code = _request('confirmcode_dbuser'); $idCode = _request('idcode_dbuser'); // Test si le code de ssession est valide _classInclude('antispam|imageprotect'); if (!ImageProtect::getCode($idCode, $code)) { $errors['confirmCodeBad'] = 1; } } //redirige vers l'éditeur si il y a des erreurs if (count($errors) != 0) { $errors['idForm'] = uniqid(); CopixSession::set('auth|createForm', $user, $errors['idForm']); return _arRedirect(_url('auth|usersregister|edit', $errors)); } //sauvegarde de l'utilisateur _ioDAO('dbuser')->insert($user); return _arRedirect(_url('')); }
public function processAdd_Admin() { if (!Kernel::isAdmin()) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get())); } $groupe_id = _request("groupe"); $tplHome = new CopixTpl(); $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', CopixI18N::get('sysutils|admin.moduleDescription')); $tpl->assign('MENU', Admin::getMenu('groupes')); $tplHome->assign('groupe_id', $groupe_id); $new_admin_check = array(); if (_request('save', 0)) { $new_admins = _request('new_admins'); $new_admins = preg_split("/[\\s,]+/", $new_admins); foreach ($new_admins as $new_admin) { if (trim($new_admin) == '') { continue; } $sql = "\n SELECT\n dbuser.id_dbuser, dbuser.login_dbuser,\n kernel_link_bu2user.bu_type, kernel_link_bu2user.bu_id,\n kernel_link_user2node.droit, kernel_link_user2node.debut, kernel_link_user2node.fin\n FROM dbuser\n JOIN kernel_link_bu2user ON kernel_link_bu2user.user_id=dbuser.id_dbuser\n LEFT JOIN kernel_link_user2node ON kernel_link_user2node.user_type=kernel_link_bu2user.bu_type AND kernel_link_user2node.user_id=kernel_link_bu2user.bu_id AND kernel_link_user2node.node_type='CLUB' AND kernel_link_user2node.node_id=:node_id\n WHERE dbuser.login_dbuser=:login_dbuser\n "; $new_admin_check[$new_admin] = _doQuery($sql, array(':login_dbuser' => $new_admin, ':node_id' => $groupe_id)); if (!count($new_admin_check[$new_admin])) { // login inconnu // NE RIEN FAIRE !!! } elseif (!$new_admin_check[$new_admin][0]->bu_type) { // login non rattaché // NE RIEN FAIRE !!! } elseif ($new_admin_check[$new_admin][0]->droit) { // déjà inscrit // Modifier le droit actuel -> admin $sql = "DELETE FROM kernel_link_user2node WHERE user_type=:user_type AND user_id=:user_id AND node_type=:node_type AND node_id=:node_id"; _doQuery($sql, array(':user_type' => $new_admin_check[$new_admin][0]->bu_type, ':user_id' => $new_admin_check[$new_admin][0]->bu_id, ':node_type' => 'CLUB', ':node_id' => $groupe_id)); $sql = "\n INSERT INTO kernel_link_user2node ( user_type, user_id, node_type, node_id, droit)\n VALUES (:user_type, :user_id, :node_type, :node_id, :droit)"; _doQuery($sql, array(':user_type' => $new_admin_check[$new_admin][0]->bu_type, ':user_id' => $new_admin_check[$new_admin][0]->bu_id, ':node_type' => 'CLUB', ':node_id' => $groupe_id, ':droit' => 70)); } else { // Ajouter le droit -> admin $sql = "\n INSERT INTO kernel_link_user2node ( user_type, user_id, node_type, node_id, droit)\n VALUES (:user_type, :user_id, :node_type, :node_id, :droit)"; _doQuery($sql, array(':user_type' => $new_admin_check[$new_admin][0]->bu_type, ':user_id' => $new_admin_check[$new_admin][0]->bu_id, ':node_type' => 'CLUB', ':node_id' => $groupe_id, ':droit' => 70)); } } $this->flash->new_admin_check = $new_admin_check; $tplHome->assign('new_admin_check', $new_admin_check); // echo "<pre>"; print_r($new_admin_check); echo "</pre>"; return _arRedirect(_url('sysutils|groupes|')); $tpl->assign('MAIN', $tplHome->fetch('sysutils|groupes-addadmin-do.tpl')); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); } $sql = "SELECT * FROM module_groupe_groupe WHERE id=:id"; $groupe_infos = _doQuery($sql, array(':id' => $groupe_id)); if (!$groupe_infos) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get())); } $tplHome->assign('groupe_id', $groupe_id); $tplHome->assign('groupe_infos', $groupe_infos); $tpl->assign('MAIN', $tplHome->fetch('sysutils|groupes-addadmin.tpl')); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }
public function processLogin() { require_once COPIX_UTILS_PATH . '../../simplesamlphp/lib/_autoload.php'; $asId = 'iconito-sql'; if (CopixConfig::exists('default|conf_Saml_authSource') && CopixConfig::get('default|conf_Saml_authSource')) { $asId = CopixConfig::get('default|conf_Saml_authSource'); } $as = new SimpleSAML_Auth_Simple($asId); $_SESSION['chartValid'] = false; $ppo = new CopixPPO(); $ppo->user = _currentUser(); if ($ppo->user->isConnected()) { $url_return = CopixUrl::get('kernel||doSelectHome'); /* * PATCH FOR CHARTE */ $this->user->forceReload(); if (!$this->service('charte|CharteService')->checkUserValidation()) { $this->flash->redirect = $url_return; return $this->go('charte|charte|valid'); } return _arRedirect($url_return); //return new CopixActionReturn (COPIX_AR_REDIRECT, $url_return); } else { $as->requireAuth(); $attributes = $as->getAttributes(); /* echo "<pre>"; print_r($attributes); die(); */ $uidAttribute = 'login_dbuser'; if (CopixConfig::exists('default|conf_Saml_uidAttribute') && CopixConfig::get('default|conf_Saml_uidAttribute')) { $uidAttribute = CopixConfig::get('default|conf_Saml_uidAttribute'); } $ppo->saml_user = null; if (isset($attributes[$uidAttribute]) && isset($attributes[$uidAttribute][0])) { $ppo->saml_user = $attributes[$uidAttribute][0]; } else { $ppo->saml_error = 'bad-conf-uidattribute'; return _arPpo($ppo, 'saml-error.tpl'); } if ($ppo->saml_user) { $ppo->iconito_user = Kernel::getUserInfo("LOGIN", $ppo->saml_user); if ($ppo->iconito_user['login']) { _currentUser()->login(array('login' => $ppo->iconito_user['login'], 'assistance' => true)); $url_return = CopixUrl::get('kernel||doSelectHome'); // $url_return = CopixUrl::get ('assistance||users'); return new CopixActionReturn(COPIX_AR_REDIRECT, $url_return); } else { $ppo->saml_error = 'no-iconito-user'; return _arPpo($ppo, 'saml-error.tpl'); } } } // $as->getLoginURL(); /* if (!$as->isAuthenticated()) { $url = SimpleSAML_Module::getModuleURL('core/authenticate.php', array('as' => $asId)); $params = array( 'ErrorURL' => CopixUrl::get ('auth|saml|test_error'), 'ReturnTo' => CopixUrl::get ('auth|saml|test_ok'), ); $as->login($params); } */ /* $attributes = $as->getAttributes(); echo "<pre>"; print_r($attributes); die(); */ }
/** * Réécriture du chemin des classes * */ public function processRebuildClassPath() { CopixAuth::getCurrentUser()->assertCredential('basic:admin'); CopixAutoloader::getInstance()->rebuildClassPath(); return _arRedirect(_url('admin||')); }
/** * Verouille les commentaires sur un élément */ public function processLock() { // On teste si on peut rediriger le lien CopixRequest::assert('url_return'); // On teste si on a un id if (_request('id') !== null) { $lock_status = CopixRequest::getInt('lock_status'); if ($lock_status === 0) { if (_ioDAO('commentslocked')->countBy(_daoSp()->addCondition('locked_page_comment', '=', _request('id'))) != 0) { _ioDAO('commentslocked')->deleteBy(_daoSp()->addCondition('locked_page_comment', '=', _request('id'))); } } else { $objLocked = _record('commentslocked'); $objLocked->locked_page_comment = _request('id'); _ioDAO('commentslocked')->insert($objLocked); } } return _arRedirect(_request('url_return')); }
/** * Supression d'un cache */ public function processDeleteType() { $type = _request('type'); if (CopixRequest::getInt('confirm') == 1) { if (Copixcache::exists($type)) { Copixcache::clear($type); } $types = CopixConfig::instance()->copixcache_getRegisteredProfiles(); unset($types[$type]); _class('cacheConfigurationFile')->write($types); return _arRedirect(_url('cache|admin')); } else { if (!in_array($type, CopixConfig::instance()->copixcache_getRegistered())) { return _arRedirect(_url('cache|admin')); } return CopixActionGroup::process('generictools|Messages::getConfirm', array('message' => _i18n('cache.delete', $type), 'confirm' => _url('admin|cache|deleteType', array('type' => $type, 'confirm' => 1)), 'cancel' => _url('admin|cache|admin'))); } }
/** * Ecran de connexion */ public function processForm() { $ppo = new CopixPPO(); $ppo->TITLE_PAGE = _i18n('auth.connect'); if (CopixAuth::getCurrentUser()->isConnected()) { $ppo->user = CopixAuth::getCurrentUser(); return _arRedirect(_url('kernel||getHome')); } $config = CopixConfig::instance(); if (count($config->copixauth_getRegisteredUserHandlers()) > 1 && CopixConfig::get('auth|multipleConnectionHandler')) { $ppo->noCredential = true; } $ppo->auth_url_return = CopixRequest::get('auth_url_return', _url('#')); $ppo->failed = array(); if (CopixRequest::getInt('noCredential', 0)) { $ppo->failed[] = _i18n('auth.error.noCredentials'); } if (CopixRequest::getInt('failed', 0)) { $ppo->failed[] = _i18n('auth.error.failedLogin'); } $ppo->createUser = Copixconfig::get('auth|createUser'); $ppo->conf_Saml_actif = CopixConfig::exists('default|conf_Saml_actif') ? CopixConfig::get('default|conf_Saml_actif') : 0; return _arPPO($ppo, 'login.form.php'); }
/** * Supression d'un log */ public function processDeleteProfile() { $profile = _request('profile'); if (CopixRequest::getInt('confirm') == 1) { CopixLog::deleteProfile($profile); $profiles = CopixConfig::instance()->copixlog_getRegisteredProfiles(); unset($profiles[$profile]); _class('LogConfigurationFile')->write($profiles); return _arRedirect(_url('log|admin')); } else { if (!in_array($profile, CopixConfig::instance()->copixlog_getRegistered())) { return _arRedirect(_url('log|admin')); } return CopixActionGroup::process('generictools|Messages::getConfirm', array('message' => _i18n('logs.delete', $profile), 'confirm' => _url('admin|log|deleteProfile', array('profile' => $profile, 'confirm' => 1)), 'cancel' => _url('admin|log|admin'))); } }
/** * Sauvegarde les handlers dans le fichier de configuration * * @return ActionReturn */ public function processSaveHandlers() { CopixRequest::assert('type'); $activeHandler = array(); foreach (_request('handlers', array()) as $handler) { $activeHandler[] = $handler; } _classInclude('auth|useConfigurationFile'); $configurationFile = new useConfigurationFile(_request('type')); $configurationFile->write($activeHandler); return _arRedirect(_url('admin||')); }
/** * 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'); } }
/** * Supression d'un utilisateur du groupe */ public function processRemoveUser() { $this->_validFromRequest(); $users = CopixSession::get('auth|usersgroup'); unset($users[CopixRequest::get('handlerUser')][CopixRequest::get('idUser')]); CopixSession::set('auth|usersgroup', $users); return _arRedirect(_url('auth|groups|edit')); }
public function processSave() { if (!$this->flash->has('nextAnsw')) { return $this->error('quiz.errors.badOperation'); } if (is_null(qSession('id'))) { return CopixActionGroup::process('quiz|default::Quiz', array('id' => false)); } //get url's answ id $qId = $this->request('qId') * 1; //test id validity if ($qId != $this->flash->currentAnsw) { return $this->error('quiz.errors.badOperation'); } //get responses form datas $pResponse = CopixRequest::get('response', false); if (!$pResponse) { $this->flash->error = $this->i18n('quiz.errors.emptyResponse'); return $this->go('quiz|default|question', array('id' => qSession('id'), 'qId' => $this->flash->currentAnsw)); } $optType = $this->flash->typeAnsw == 'choice' ? 'radio' : 'txt'; $userId = $this->user->id; //delete previous info $criteres = _daoSp()->addCondition('id_user', '=', $userId)->addCondition('id_question', '=', $this->flash->currentAnsw, 'and'); _dao('quiz_response_insert')->deleteBy($criteres); if ($optType == 'radio') { $i = 0; foreach ($pResponse as $response) { $record = _record('quiz_response_insert'); $record->id_user = $userId; $record->id_choice = $response + 0; $record->id_question = $this->flash->currentAnsw; $record->date = time(); $responses[] = $response + 0; _dao('quiz_response_insert')->insert($record); $i++; } } else { //cas du submit txt } //lock test $quizData = _dao('quiz_quiz')->get(qSession('id')); if ($quizData->lock == 1) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('quiz.errors.lock'), 'back' => CopixUrl::get('quiz||'))); } $nextQ = $this->flash->nextAnsw; //if next answ = flash : end of quiz if (!$nextQ) { return _arRedirect(_url('quiz|default|endQuestions', array('id' => qSession('id')))); } return _arRedirect(_url('quiz|default|question', array('id' => qSession('id'), 'qId' => $nextQ))); }
/** * 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')))); }
public function go($iUrl = 'default', $iParams = array()) { //build url : $back = $iUrl == 'default' ? $this->module . '||' : $iUrl; return _arRedirect($this->url($iUrl, $iParams)); }
/** * Ré-génération des mots de passe d'une classe */ public function processResetClassroomPasswords() { $ppo = new CopixPPO(); $ppo->nodeId = _request('nodeId', null); // Récupération des paramètres if (is_null($ppo->nodeId)) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => "Une erreur est survenue.", 'back' => CopixUrl::get('gestionautonome||showTree'))); } $classroomDAO = _ioDAO('kernel|kernel_bu_ecole_classe'); if (!($classroom = $classroomDAO->get($ppo->nodeId))) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => "Une erreur est survenue.", 'back' => CopixUrl::get('gestionautonome||showTree'))); } // Contrôle des droits $ppo->hasCredentialTeacherUpdate = _currentUser()->testCredential('module:classroom|' . $ppo->nodeId . '|teacher|update@gestionautonome'); $ppo->hasCredentialStudentUpdate = _currentUser()->testCredential('module:classroom|' . $ppo->nodeId . '|student|update@gestionautonome'); $ppo->hasCredentialPersonInChargeUpdate = _currentUser()->testCredential('module:classroom|' . $ppo->nodeId . '|person_in_charge|update@gestionautonome'); if (!$ppo->hasCredentialPersonInChargeUpdate && !$ppo->hasCredentialStudentUpdate && !$ppo->hasCredentialPersonInChargeUpdate) { throw new CopixCredentialException(); } // Infos du noeud $nodeInfos = Kernel::getNodeInfo('BU_CLASSE', $ppo->nodeId); // Compteur max $counters = array(); // Récupération des enseignants de la classe $ppo->teachers = array(); if ($ppo->hasCredentialTeacherUpdate) { $personnelDAO = _ioDAO('kernel|kernel_bu_personnel'); $ppo->teachers = $personnelDAO->findTeachersByClassroomId($ppo->nodeId); $counters[] = count($ppo->teachers); } // Récupération des élèves de la classe $ppo->students = array(); if ($ppo->hasCredentialStudentUpdate) { $studentDAO = _ioDAO('kernel|kernel_bu_ele'); $ppo->students = $studentDAO->getStudentsByClass($ppo->nodeId); $counters[] = count($ppo->students); } // Récupération des parents de la classe $ppo->personsInCharge = array(); if ($ppo->hasCredentialPersonInChargeUpdate) { $responsableDAO = _ioDAO('kernel|kernel_bu_res'); $ppo->personsInCharge = $responsableDAO->getParentsInClasse($ppo->nodeId); $counters[] = count($ppo->personsInCharge); } // Compteur MAX $ppo->counter = max($counters); // Breadcrumbs & titre $breadcrumbs = Kernel::generateBreadcrumbs($nodeInfos); $breadcrumbs[] = array('txt' => 'Re-génération des mots de passe'); $ppo->breadcrumbs = Kernel::PetitPoucet($breadcrumbs, ' » '); $ppo->TITLE_PAGE = CopixConfig::get('gestionautonome|moduleTitle'); // Get vocabulary catalog to use $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog'); $ppo->vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode($ppo->nodeType, $ppo->nodeId); // Traitement du formulaire if (CopixRequest::isMethod('post')) { $studentsIds = _request('students', array()); $teachersIds = _request('teachers', array()); $personsInChargeIds = _request('personsInCharge', array()); $dbuserDAO = _ioDAO('kernel|kernel_copixuser'); // Mise en session globale des mots de passe $passwordsList = _sessionGet('modules|gestionautonome|passwordsList'); if (!is_array($passwordsList)) { $passwordsList = array(); } $ppo->accounts = array(); foreach ($ppo->students as $student) { if (in_array($student->idEleve, $studentsIds)) { if ($account = $dbuserDAO->getUserByBuIdAndBuType($student->idEleve, 'USER_ELE')) { $password = Kernel::createPasswd(); $account->password_dbuser = md5($password); $dbuserDAO->update($account); // Mise en session de l'élève pour l'export des infos $studentAr = array('lastname' => $student->nom, 'firstname' => $student->prenom1, 'login' => $account->login_dbuser, 'password' => $password, 'bu_type' => 'USER_ELE', 'bu_id' => $student->idEleve, 'type_nom' => Kernel::Code2Name('USER_ELE'), 'node_nom' => Kernel::Code2Name('BU_CLASSE') . ' ' . $nodeInfos['nom'], 'gender' => $student->id_sexe); $passwordsList['USER_ELE'][$student->idEleve] = $studentAr; $ppo->accounts[] = $studentAr; } } } foreach ($ppo->personsInCharge as $personInCharge) { if (in_array($personInCharge->id, $personsInChargeIds)) { if ($account = $dbuserDAO->getUserByBuIdAndBuType($personInCharge->id, 'USER_RES')) { $password = Kernel::createPasswd(); $account->password_dbuser = md5($password); $dbuserDAO->update($account); // Mise en session de la personne responsable pour l'export des infos $personAr = array('lastname' => $personInCharge->nom, 'firstname' => $personInCharge->prenom, 'login' => $account->login_dbuser, 'password' => $password, 'bu_type' => 'USER_RES', 'bu_id' => $personInCharge->id, 'type_nom' => Kernel::Code2Name('USER_RES'), 'node_nom' => Kernel::Code2Name('BU_CLASSE') . ' ' . $nodeInfos['nom'], 'gender' => $personInCharge->sexe); $passwordsList['USER_RES'][$personInCharge->id] = $personAr; $ppo->accounts[] = $personAr; } } } foreach ($ppo->teachers as $teacher) { if (in_array($teacher->numero, $teachersIds)) { if ($account = $dbuserDAO->getUserByBuIdAndBuType($teacher->numero, 'USER_ENS')) { $password = Kernel::createPasswd(); $account->password_dbuser = md5($password); $dbuserDAO->update($account); // Mise en session de l'enseignant pour l'export des infos $teacherAr = array('lastname' => $teacher->nom, 'firstname' => $teacher->prenom1, 'login' => $account->login_dbuser, 'password' => $password, 'bu_type' => 'USER_ENS', 'bu_id' => $teacher->numero, 'type_nom' => Kernel::Code2Name('USER_ENS'), 'node_nom' => Kernel::Code2Name('BU_CLASSE') . ' ' . $nodeInfos['nom'], 'gender' => $personInCharge->id_sexe); $passwordsList['USER_ENS'][$teacher->numero] = $teacherAr; $ppo->accounts[] = $teacherAr; } } } if (!empty($ppo->accounts)) { _sessionSet('modules|gestionautonome|createAccount', $ppo->accounts); _sessionSet('modules|gestionautonome|passwordsList', $passwordsList); return _arRedirect(CopixUrl::get('gestionautonome||showNewClassroomPasswords', array('nodeId' => $ppo->nodeId))); } else { $ppo->error = 1; } } return _arPPO($ppo, 'reset_classroom_passwords.tpl'); }