/** * Accueil des stats * * @author Christophe Beyer <*****@*****.**> * @since 2007/03/19 */ public function home() { if (!Admin::canAdmin()) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get())); } $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', CopixI18N::get('sysutils|admin.menu.stats')); $tpl->assign('MENU', Admin::getMenu('stats')); $tplStats = new CopixTpl(); $modules = Kernel::getAllModules(); $tab = array(); foreach ($modules as $mod_val) { $arModulesPath = CopixConfig::instance()->arModulesPath; foreach ($arModulesPath as $modulePath) { $class_file = $modulePath . $mod_val . '/' . COPIX_CLASSES_DIR . 'kernel' . $mod_val . '.class.php'; if (!file_exists($class_file)) { continue; } $module_class =& CopixClassesFactory::Create($mod_val . '|Kernel' . $mod_val); //print_r($module_class); if (!is_callable(array($module_class, 'getStatsRoot'))) { continue; } //$classeModule = CopixClassesFactory::create("$label|Kernel$label"); $tab[$mod_val]['module_nom'] = Kernel::Code2Name('mod_' . $mod_val); $tab[$mod_val]['stats'] = $module_class->getStatsRoot(); } } //print_r($tab); $tplStats->assign('tab', $tab); $tpl->assign('MAIN', $tplStats->fetch('sysutils|stats.modules.tpl')); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }
/** * Affiche la fiche détaillée d'un utilisateur (login, nom, prénom...) * * @author Christophe Beyer <*****@*****.**> * @since 2006/01/04 * @param string $type Type de personne (USER_ELE, USER_ELE...) * @param integer $id Id */ public function _createContent(&$toReturn) { $annuaireService =& CopixClassesFactory::Create('annuaire|AnnuaireService'); $type = $this->getParam('type') ? $this->getParam('type') : NULL; $id = $this->getParam('id') ? $this->getParam('id') : NULL; $canWrite = $canView = false; if ($type && $id) { $usr = Kernel::getUserInfo($type, $id); $usr['type_nom'] = Kernel::Code2Name($usr['type']); //Kernel::myDebug($usr); $droits = Kernel::getUserInfoMatrix($usr); $canView = $droits['voir']; $canWrite = $droits['communiquer']; if ($canView) { // Avatar $avatar = ''; if (isset($usr['user_id'])) { $avatar = Prefs::get('prefs', 'avatar', $usr['user_id']); } $usr['avatar'] = $avatar ? CopixConfig::get('prefs|avatar_path') . $avatar : ''; $parents = $enfants = array(); if ($type == 'USER_ELE') { // Pour un élève, on cherche ses parents $parents = $annuaireService->getParentsFromEleve($id); } elseif ($type == 'USER_RES') { // Pour un parent, on cherche ses enfants $enfants = $annuaireService->getEnfantsFromParent($id); } } else { $usr = $parents = $enfants = false; } $tpl = new CopixTpl(); $tpl->assign('usr', $usr); $tpl->assign('canWrite', $canWrite); $tpl->assign('parents', $parents); $tpl->assign('enfants', $enfants); $toReturn = $tpl->fetch('getuserprofilzone.tpl'); } return true; }
/** * getModEnabled * * Retourne la liste des modules attachÈs ‡ un noeud, et en option, ceux dÈpendant du type d'utilisateur. * * @author FrÈdÈric Mossmann <*****@*****.**> * @param string $node_type Type de noeud. * @param integer $node_id Identifiant du noeud. * @param string $user_type Type d'utilisateur (facultatif). * @param integer $user_id Identifiant du noeud (facultatif). */ public function getModEnabled($node_type, $node_id, $user_type = '', $user_id = 0, $full = 0, $notification = 0) { // echo "getModEnabled( $node_type, $node_id, $user_type, $user_id)"; $carnetDeLiaison = CopixConfig::exists('kernel|carnetDeLiaison') && CopixConfig::get('kernel|carnetDeLiaison'); $dao = _dao("kernel|kernel_mod_enabled"); $modules = array(); // Parent d'eleve... if (0 == strncmp($node_type, "USER_ELE", 8) && 0 == strncmp($user_type, "USER_RES", 8)) { $parents = Kernel::getNodeParents($node_type, $node_id); $parent = Kernel::filterNodeList($parents, 'BU_CLASSE'); if (count($parent)) { if ($parent[0]['droit'] >= 30) { $parent_modules = Kernel::getModEnabled($parent[0]['type'], $parent[0]['id'], $node_type, $node_id); /* echo '<li>$parent[0][] = '.$parent[0]['type']."/".$parent[0]['id']."</li>"; echo '<li>$node_* = '.$node_type."/".$node_id."</li>"; */ $perso = new stdClass(); foreach ($parent_modules as $parent_module) { /* $perso->node_type = $parent[0]['type']; $perso->node_id = $parent[0]['id']; */ $perso->node_type = $node_type; $perso->node_id = $node_id; $perso->module_type = $parent_module->module_type; $perso->module_id = $parent_module->module_id; $perso->module_nom = Kernel::Code2Name($parent_module->module_type); $modules[] = clone $perso; } /* $perso->node_type = $parent[0]['type']; $perso->node_id = $parent[0]['id']; */ $perso->node_type = $node_type; $perso->node_id = $node_id; $perso->module_type = 'MOD_CARNET'; $perso->module_id = 'ELEVE_' . $node_id; $perso->module_nom = Kernel::Code2Name('MOD_CARNET'); if ($carnetDeLiaison) { $modules[] = clone $perso; } } } // _dump($modules); if ($notification) { Kernel::getModlistNotifications($modules); } reset($modules); return $modules; } $list = $dao->getByNode($node_type, $node_id); foreach ($list as $v) { if (!$full) { if ($v->module_type == 'MOD_MAGICMAIL') { continue; } } $v->module_nom = Kernel::Code2Name($v->module_type); $modules[] = clone $v; } // _dump($modules); //print_r($modules); if ($user_type == "USER_ENS" && $node_type == "BU_CLASSE" && Kernel::getLevel($node_type, $node_id) >= 60) { $carnetcorresp = new CopixPPO(); $carnetcorresp->node_type = $node_type; $carnetcorresp->node_id = $node_id; $carnetcorresp->module_type = 'MOD_CARNET'; $carnetcorresp->module_id = 'CLASSE_' . $node_id; $carnetcorresp->module_nom = Kernel::Code2Name('MOD_CARNET'); if ($carnetDeLiaison) { $modules[] = clone $carnetcorresp; } } //for KNE if (in_array($user_type, array('USER_ELE', 'USER_ENS', 'USER_DIR', 'USER_DID')) && $node_type == 'BU_CLASSE' && CopixClassesFactory::create('kne|kneService')->active) { $modKne = new stdClass(); $modKne->node_type = $node_type; $modKne->node_id = $node_id; $modKne->module_type = 'MOD_KNE'; $modKne->module_id = $node_id; $modKne->module_nom = kernel::Code2Name('MOD_KNE'); $modules[] = $modKne; } //for Coreprim if (in_array($user_type, array('USER_ELE', 'USER_ENS', 'USER_DIR', 'USER_DID')) && $node_type == 'BU_CLASSE' && CopixConfig::exists('default|rssEtagereEnabled') && CopixConfig::get('default|rssEtagereEnabled')) { $modRssEtagere = new stdClass(); $modRssEtagere->node_type = $node_type; $modRssEtagere->node_id = $node_id; $modRssEtagere->module_type = 'MOD_RSSETAGERE'; $modRssEtagere->module_id = $node_type . "-" . $node_id; $modRssEtagere->module_nom = kernel::Code2Name('MOD_RSSETAGERE'); $modules[] = $modRssEtagere; } if (CopixConfig::exists('|conf_ModTeleprocedures') && CopixConfig::get('|conf_ModTeleprocedures') == 0) { // Pas de module de tÈlÈprocÈdures... } else { if ($user_type == "USER_ENS" && $node_type == "BU_ECOLE" && Kernel::getLevel($node_type, $node_id) >= 60) { $teleprocedures = new CopixPPO(); $teleprocedures->node_type = $node_type; $teleprocedures->node_id = $node_id; $teleprocedures->module_type = 'MOD_TELEPROCEDURES'; $teleprocedures->module_id = 'ECOLE_' . $node_id; $teleprocedures->module_nom = Kernel::Code2Name('MOD_TELEPROCEDURES'); $modules[] = clone $teleprocedures; } elseif (CopixConfig::exists('teleprocedures|USER_ADM_as_USER_ENS') && CopixConfig::get('teleprocedures|USER_ADM_as_USER_ENS') && $user_type == "USER_ADM" && $node_type == "BU_ECOLE" && Kernel::getLevel($node_type, $node_id) >= 30) { $teleprocedures = new CopixPPO(); $teleprocedures->node_type = $node_type; $teleprocedures->node_id = $node_id; $teleprocedures->module_type = 'MOD_TELEPROCEDURES'; $teleprocedures->module_id = 'ECOLE_' . $node_id; $teleprocedures->module_nom = Kernel::Code2Name('MOD_TELEPROCEDURES'); $modules[] = clone $teleprocedures; } } // Cas particuliers : modules personnels sans numÈros if (0 == strncmp($node_type, "USER_", 5)) { $perso_list = array('MOD_ANNUAIRE', 'MOD_MINIMAIL', 'MOD_GROUPE', 'MOD_RESSOURCE'); foreach ($perso_list as $perso_module) { $perso = new CopixPPO(); $perso->node_type = $node_type; $perso->node_id = $node_id; $perso->module_id = NULL; $perso->module_type = $perso_module; $perso->module_nom = Kernel::Code2Name($perso_module); $modules[] = clone $perso; unset($perso); } } // Cas particulier : module d'administration if ($node_type == "ROOT" && Kernel::getLevel($node_type, $node_id) >= 60) { $sysutils = new CopixPPO(); $sysutils->node_type = $node_type; $sysutils->node_id = $node_id; $sysutils->module_id = NULL; $sysutils->module_type = 'MOD_SYSUTILS'; $sysutils->module_nom = Kernel::Code2Name('MOD_SYSUTILS'); $modules[] = clone $sysutils; $charte = new CopixPPO(); $charte->node_type = $node_type; $charte->node_id = $node_id; $charte->module_id = NULL; $charte->module_type = 'MOD_CHARTE'; $charte->module_nom = Kernel::Code2Name('MOD_CHARTE'); $modules[] = clone $charte; } // Cas ENS+VIL : SSO vers Gael si tout est configurÈ. $SsoGaelService =& CopixClassesFactory::Create('ssogael|ssogael'); if (($user_type == "USER_ENS" && $node_type == "BU_ECOLE" || $user_type == "USER_VIL" && $node_type == "BU_VILLE") && method_exists($SsoGaelService, "canSsoGael") && $SsoGaelService->canSsoGael() && Kernel::getLevel($node_type, $node_id) >= 60) { $comptes = new stdClass(); $comptes->node_type = $node_type; $comptes->node_id = $node_id; $comptes->module_type = 'MOD_SSOGAEL'; $comptes->module_id = $node_type . '-' . $node_id; $comptes->module_nom = Kernel::Code2Name('MOD_SSO_GAEL'); $comptes->module_popup = true; // Mode Popup !!! $modules[] = clone $comptes; } // Cas particulier : gestion des groupes de ville (AC/TICE) if ($node_type == "ROOT" && Kernel::getLevel($node_type, $node_id) >= 60) { $mod_grvilles = new stdClass(); $mod_grvilles->node_type = $node_type; $mod_grvilles->node_id = $node_id; $mod_grvilles->module_type = 'MOD_REGROUPEMENTS'; $mod_grvilles->module_id = $node_type . '-' . $node_id; $mod_grvilles->module_nom = Kernel::Code2Name('MOD_REGROUPEMENTS'); $modules[] = clone $mod_grvilles; } // Cas particulier : Gestion autonome // if( $user_type == "USER_EXT" // && $node_type == "ROOT" // && Kernel::getLevel( $node_type, $node_id ) >= 60 ) { if (CopixConfig::exists('kernel|gestionAutonomeEnabled') && CopixConfig::get('kernel|gestionAutonomeEnabled')) { if (($node_type == "ROOT" || $user_type == "USER_ENS" && $node_type == "BU_ECOLE" || $user_type == "USER_ENS" && $node_type == "BU_CLASSE" || $user_type == "USER_VIL" && $node_type == "BU_VILLE") && Kernel::getLevel($node_type, $node_id) >= 60) { $mod_grvilles = new CopixPPO(); $mod_grvilles->node_type = $node_type; $mod_grvilles->node_id = $node_id; $mod_grvilles->module_type = 'MOD_GESTIONAUTONOME'; $mod_grvilles->module_id = $node_type . '-' . $node_id; $mod_grvilles->module_nom = Kernel::Code2Name('MOD_GESTIONAUTONOME'); $modules[] = clone $mod_grvilles; } } elseif (($node_type == "ROOT" || $user_type == "USER_ENS" && $node_type == "BU_ECOLE" || $user_type == "USER_ENS" && $node_type == "BU_CLASSE" || $user_type == "USER_VIL" && $node_type == "BU_VILLE") && Kernel::getLevel($node_type, $node_id) >= 60) { $comptes->node_type = $node_type; $comptes->node_id = $node_id; $comptes->module_type = 'MOD_COMPTES'; $comptes->module_id = $node_type . '-' . $node_id; $comptes->module_nom = Kernel::Code2Name('MOD_COMPTES'); $modules[] = clone $comptes; } if ($user_type == "USER_ENS" && ($node_type == "BU_ECOLE" && Kernel::getLevel($node_type, $node_id) >= 60 || $node_type == "BU_CLASSE") && CopixConfig::exists('default|conf_Ceriseprim_actif') && CopixConfig::get('default|conf_Ceriseprim_actif')) { $perso->node_type = $node_type; $perso->node_id = $node_id; $perso->module_type = 'MOD_CERISEPRIM'; $perso->module_id = $node_type . "-" . $node_id; $perso->module_nom = Kernel::Code2Name('MOD_CERISEPRIM'); $modules[] = clone $perso; } // _dump($modules); if ($notification) { Kernel::getModlistNotifications($modules); } reset($modules); return $modules; }
/** * Affiche l'aide * * @author Christophe Beyer <*****@*****.**> * @since 2006/04/12 */ public function processViewHelp() { $rubrique = $this->getRequest('rubrique', null); $page = $this->getRequest('page', null); $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', CopixI18N::get('aide|aide.description')); //$tpl->assign ('MENU', $menu); if ($rubrique) { $hasHelpRub = false; $arModulesPath = CopixConfig::instance()->arModulesPath; foreach ($arModulesPath as $modulePath) { $file = $modulePath . $rubrique . '/' . COPIX_CLASSES_DIR . 'help' . $rubrique . '.class.php'; if (file_exists($file)) { $hasHelpRub = true; $modhelp =& CopixClassesFactory::Create($rubrique . '|help' . $rubrique); if (method_exists($modhelp, 'getPages')) { $pages = $modhelp->getPages(); } if ($page && is_array($pages) && isset($pages[$page])) { // Page précise $tpl->assign('TITLE_PAGE', Kernel::Code2Name('mod_' . $rubrique) . ' - ' . $pages[$page]['title']); $tpl->assign('MENU', '<a href="' . CopixUrl::get('aide||', array('rubrique' => $rubrique)) . '">' . CopixI18N::get('aide|aide.link.top') . '</a> :: <a href="' . CopixUrl::get('aide||') . '">' . CopixI18N::get('aide|aide.link.index') . '</a>'); // On vérifie que le fichier existe bien $lg = CopixI18N::getLang(); $file = $modulePath . $rubrique . '/' . COPIX_TEMPLATES_DIR . 'help_' . $page . '_' . $lg . '.html'; if (file_exists($file)) { //$tpl->assignStatic ('text', $rubrique.'|help_'.$page.'_'.$lg.'.html'); $tpl2 = new CopixTpl(); $text = $tpl2->fetch($rubrique . '|help_' . $page . '_' . $lg . '.html'); $tpl->assign('text', $text); $tpl->assign('rubrique', $rubrique); $tpl->assign('pages', $pages); $see = array(); if (isset($pages[$page]['links']) && is_array($pages[$page]['links'])) { $links = $pages[$page]['links']; //print_r($links); foreach ($links as $link) { $l = explode('|', $link); //print_r($l); if (count($l) == 1) { // Même module $see[] = array('rubrique' => $rubrique, 'page' => $l[0], 'title' => $pages[$l[0]]['title']); } else { // Autre module $arModulesPath2 = CopixConfig::instance()->arModulesPath; foreach ($arModulesPath2 as $modulePath2) { $file = $modulePath2 . $l[0] . '/' . COPIX_CLASSES_DIR . 'help' . $l[0] . '.class.php'; if (file_exists($file)) { $modhelp2 =& CopixClassesFactory::Create($l[0] . '|help' . $l[0]); if (method_exists($modhelp2, 'getPages')) { $pages2 = $modhelp2->getPages(); //print_r($pages2); $see[] = array('rubrique' => $l[0], 'page' => $l[1], 'title' => $pages2[$l[1]]['title']); } } } } } } $tpl->assign('links', $see); } $MAIN = $tpl->fetch('viewhelprubpage.tpl'); } else { // Sommaire de l'aide du module $tpl->assign('TITLE_PAGE', Kernel::Code2Name('mod_' . $rubrique)); $tpl->assign('MENU', '<a href="' . CopixUrl::get('aide||') . '">' . CopixI18N::get('aide|aide.link.index') . '</a>'); $tpl->assign('rubrique', $rubrique); $tpl->assign('pages', $pages); $MAIN = $tpl->fetch('viewhelprub.tpl'); } } } if (!$hasHelpRub) { $MAIN = $tpl->fetch('viewhelp.tpl'); } } else { $rubs = array('minimail', 'album'); // Compléter avec les modules dont l'aide est écrite $rubriques = array(); foreach ($rubs as $rub) { $rubriques[] = array('name' => $rub, 'title' => Kernel::Code2Name('mod_' . $rub)); } $tpl->assign('rubriques', $rubriques); $MAIN = $tpl->fetch('viewhelp.tpl'); } $tpl->assign('MAIN', $MAIN); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }
/** * doLoginCreate * * Execute la création des comptes et sauvegarde les infos en session. * @author Frédéric Mossmann * @since 16.02.2006 * */ public function doLoginCreate() { $comptes_service =& CopixClassesFactory::Create('comptes|ComptesService'); $user_dao =& CopixDAOFactory::create("kernel|kernel_copixuser"); $bu_dao =& CopixDAOFactory::create("kernel|kernel_bu2user"); $pConfirm = _request('confirm', array()); $pLogin = _request('login', array()); $pPasswd = _request('passwd', array()); $pReset = _request('reset', ''); // Parcours de tous les utilisateurs de la liste précédente... foreach (_request('typeid') as $typeid) { // Si l'utilisateur est sélectionné, on crée le compte. Sinon, on ne fait rien. if (isset($pConfirm[$typeid]) && $pConfirm[$typeid] == 1) { // Vérification du format de type "USER_ENS-23", et extraction des valeurs. if (ereg('(.+)-(.+)', $typeid, $bu_infos)) { $user_type = $bu_infos[1]; $user_id = $bu_infos[2]; $olduser = _dao("kernel|kernel_copixuser")->getByLogin($pLogin[$typeid]); // Test de préexistance du login dans la base. Si existe déjà : erreur. if (!count($olduser)) { // Récupération des information de l'utilisateur dans la base unique. $user_infos = Kernel::getUserInfo($user_type, $user_id); // Création d'un login dans CopixUser $user_new = CopixDAOFactory::createRecord("kernel|kernel_copixuser"); $user_new->login_dbuser = $pLogin[$typeid]; $user_new->password_dbuser = md5($pPasswd[$typeid]); $user_new->email_dbuser = ''; $user_new->enabled_dbuser = 1; // Enregistrement et vérification de l'insertion. if ($user_dao->insert($user_new)) { // Création du lien entre l'utilisateur de la base unique et le login. $bu_new = _record("kernel|kernel_bu2user2"); $bu_new->user_id = $user_new->id_dbuser; $bu_new->bu_type = $user_type; $bu_new->bu_id = $user_id; // Enregistrement et vérification de l'insertion. if (_dao("kernel|kernel_bu2user2")->insert($bu_new)) { $node_infos = Kernel::getNodeInfo(_request('type'), _request('id'), false); // Garder en mémoire les comptes créés pour impression des passwords if (!($session = _sessionGet('modules|comptes|doLoginCreate|success'))) { $session = array(); } $session[$typeid] = array('id' => $user_new->id_dbuser, 'login' => $pLogin[$typeid], 'passwd' => $pPasswd[$typeid], 'nom' => $user_infos['nom'], 'prenom' => $user_infos['prenom'], 'bu_type' => $user_type, 'bu_id' => $user_id, 'node_type' => _request('type'), 'node_id' => _request('id'), 'type_nom' => Kernel::Code2Name($user_type), 'node_nom' => Kernel::Code2Name(_request('type')) . " " . $node_infos['nom']); _sessionSet('modules|comptes|doLoginCreate|success', $session); } else { // Si le lien entre la BU et le login ne fonctionne pas... // Garder en mémoire les echecs pour proposer une nouvelle insertion if (!($session = _sessionGet('modules|comptes|doLoginCreate|error'))) { $session = array(); } $session[$typeid] = array('login' => $pLogin[$typeid], 'passwd' => $pPasswd[$typeid], 'nom' => $user_infos['nom'], 'prenom' => $user_infos['prenom'], 'bu_type' => $user_type, 'bu_id' => $user_id, 'error' => 'BU2USER'); _sessionSet('modules|comptes|doLoginCreate|error', $session); // Prévoir un Rollback pour effacer le login ? } } else { // Si le login est impossible à créer... if (!($session = _sessionGet('modules|comptes|doLoginCreate|error'))) { $session = array(); } // Garder en mémoire les echecs pour proposer une nouvelle insertion $session[$typeid] = array('login' => $pLogin[$typeid], 'passwd' => $pPasswd[$typeid], 'nom' => $user_infos['nom'], 'prenom' => $user_infos['prenom'], 'bu_type' => $user_type, 'bu_id' => $user_id, 'error' => 'COPIXUSER'); _sessionSet('modules|comptes|doLoginCreate|error', $session); } } elseif ($pReset != '') { $user_infos = Kernel::getUserInfo($user_type, $user_id); $user_new = $user_dao->getByLogin($pLogin[$typeid]); // _dump($user_new); die(); $user_new[0]->password_dbuser = md5($pPasswd[$typeid]); $user_dao->update($user_new[0]); $node_infos = Kernel::getNodeInfo(_request('type'), _request('id'), false); $session[$typeid] = array('id' => $user_new[0]->id_dbuser, 'login' => $pLogin[$typeid], 'passwd' => $pPasswd[$typeid], 'nom' => $user_infos['nom'], 'prenom' => $user_infos['prenom'], 'bu_type' => $user_type, 'bu_id' => $user_id, 'node_type' => _request('type'), 'node_id' => _request('id'), 'type_nom' => Kernel::Code2Name($user_type), 'node_nom' => Kernel::Code2Name(_request('type')) . " " . $node_infos['nom']); _sessionSet('modules|comptes|doLoginCreate|success', $session); } else { // Si le login existe déjà, vérification qu'il ne s'agit pas de la même personne. // Si c'est le cas, ce n'est pas une erreur, mais un doublon. $bu_dao =& CopixDAOFactory::create("kernel|kernel_bu2user"); $bu_user = $bu_dao->getByLogin($pLogin[$typeid]); $bu_user_deja = false; foreach ($bu_user as $user) { $bu_user_deja = $user; break; } //print_r($bu_user_deja); if ($bu_user_deja && $bu_user_deja->bu_type != $user_type || $bu_user_deja->bu_id != $user_id) { if (!($session = _sessionGet('modules|comptes|doLoginCreate|error'))) { $session = array(); } // Garder en mémoire les echecs pour proposer une nouvelle insertion $session[$typeid] = array('login' => $pLogin[$typeid], 'passwd' => $pPasswd[$typeid], 'nom' => $user_infos['nom'], 'prenom' => $user_infos['prenom'], 'bu_type' => $user_type, 'bu_id' => $user_id, 'error' => 'LOGINEXISTS'); _sessionSet('modules|comptes|doLoginCreate|error', $session); } } } } } $urlReturn = CopixUrl::get('comptes||getLoginResult', array('type' => _request('type'), 'id' => _request('id'))); return new CopixActionReturn(COPIX_AR_REDIRECT, $urlReturn); }
/** * 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'); }
function smarty_modifier_profil($string) { return Kernel::Code2Name($string); }
/** * Administration des modules d'un groupe * * @author Christophe Beyer <*****@*****.**> * @since 2005/11/16 * @see doFormAdminModules() * @param integer $id Id du groupe * @param integer $done Si 1, on vient d'une page ayant bien effectu� les modifications demand�es * @param array $errors (option) Erreurs rencontr�es */ public function getHomeAdminModules() { $dao = CopixDAOFactory::create("groupe"); $kernel_service =& CopixClassesFactory::Create('kernel|kernel'); $groupeService =& CopixClassesFactory::Create('groupe|groupeService'); $id = $this->getRequest('id', null); $done = $id ? $this->getRequest('done', null) : null; $errors = $this->getRequest('errors', array()); $critical_errors = array(); $groupe = $dao->getGroupe($id); if (!$groupe) { $critical_errors[] = CopixI18N::get('groupe|groupe.error.noGroup'); } $mondroit = $kernel_service->getLevel("CLUB", $id); if (!$groupeService->canMakeInGroupe('ADMIN', $mondroit)) { $critical_errors[] = CopixI18N::get('kernel|kernel.error.noRights'); } if ($critical_errors) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $critical_errors), 'back' => CopixUrl::get('groupe||'))); } else { // Tous les modules possibles $modules = $kernel_service->getModAvailable("club"); while (list($k, $tmp) = each($modules)) { if ($tmp->module_type == 'MOD_MAGICMAIL') { unset($modules[$k]); continue; } $modules[$k]->module_name = Kernel::Code2Name($tmp->module_type); $modules[$k]->module_desc = Kernel::Code2Desc($tmp->module_type); } //print_r($modules); // Ses modules $his_modules = array(); $modEnabled = $kernel_service->getModEnabled("club", $id); //print_r($modEnabled); foreach ($modEnabled as $tmp) { $his_modules[$tmp->module_type] = 1; } //print_r($his_modules); CopixHTMLHeader::addCSSLink(_resource("styles/module_groupe_admin.css")); $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', $groupe[0]->titre . ' - ' . CopixI18N::get('groupe|groupe.adminModules')); // $tpl->assign ('MENU', '<a href="'.CopixUrl::get ('groupe||getHome', array("id"=>$id)).'">'.CopixI18N::get ('groupe|groupe.backHome').'</a> :: <a href="'.CopixUrl::get ('groupe||getHomeAdmin', array("id"=>$id)).'">'.CopixI18N::get ('groupe|groupe.backHomeAdmin').'</a>'); $menu = array(); // $menu[] = array('url' => CopixUrl::get ('groupe||getHome', array("id"=>$id)), 'txt'=>CopixI18N::get ('groupe|groupe.backHome'), 'size'=>100); // $menu[] = array('url' => CopixUrl::get ('groupe||getHomeAdmin', array("id"=>$id)), 'txt'=>CopixI18N::get ('groupe|groupe.backHomeAdmin'), 'size'=>195); $tpl->assign('MENU', $menu); $tplForm = new CopixTpl(); $tplForm->assign('id', $id); $tplForm->assign('done', $done); $tplForm->assign('groupe', $groupe[0]); $tplForm->assign("modules", $modules); $tplForm->assign("his_modules", $his_modules); $tplForm->assign('errors', $errors); $result = $tplForm->fetch('gethomeadminmodules.tpl'); $tpl->assign('MAIN', $result); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); } }