public function getModules() { $my_modules = array(); $nodes = Kernel::getMyNodes(); if (sizeof($nodes)) { foreach ($nodes as $node_key => $node) { $modules = Kernel::getModEnabled($node->type, $node->id, _currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($modules as $modules_key => $module) { if ($module->module_type != "MOD_PREFS" && preg_match('#^MOD_(.+)$#', $module->module_type, $regs)) { $mod_tmp = new CopixPPO(); $mod_tmp->type = $module->module_type; $mod_tmp->nom = $module->module_nom; $mod_tmp->rep = strtolower($regs[1]); $my_modules[$module->module_type] = $mod_tmp; unset($mod_tmp); } } } } ksort($my_modules); $pref_module['MOD_PREFS'] = new CopixPPO(); $pref_module['MOD_PREFS']->type = 'MOD_PREFS'; $pref_module['MOD_PREFS']->nom = CopixI18N::get('prefs|prefs.string.generalprefs'); $pref_module['MOD_PREFS']->rep = 'prefs'; $all_modules = array_merge($pref_module, $my_modules); return $all_modules; }
public function _createContent(&$toReturn) { $ppo = new CopixPPO(); // Récupération des paramètres $ppo->classeurId = $this->getParam('classeurId'); $ppo->dossierCourant = $this->getParam('dossierCourant'); // Paramètres pour la vue popup $ppo->field = $this->getParam('field'); $ppo->format = $this->getParam('format'); $ppo->withPersonal = _sessionGet('user_animateur') ? false : $this->getParam('withPersonal', true); $ppo->moduleType = $this->getParam('moduleType', null); $ppo->moduleId = $this->getParam('moduleId', null); // Récupération des classeurs accessibles à l'utilisateur $classeurIds = array(); // Récupération de ses ressources (obligatoire pour récupérer le classeur personnel) $nodes = Kernel::getMyNodes(_currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($nodes as $node) { $modules = Kernel::getModEnabled($node->type, $node->id, _currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($modules as $module) { if ($module->module_type == 'MOD_CLASSEUR' && Kernel::getLevel('MOD_CLASSEUR', $module->module_id) >= PROFILE_CCV_READ) { // Le module correspond-il au classeur personnel if ($ppo->withPersonal && strpos($module->node_type, 'USER_') !== false && ($module->node_type == _currentUser()->getExtra('type') && $module->node_id == _currentUser()->getExtra('id'))) { $ppo->classeurPersonnel = $module->module_id; $classeurIds[] = $module->module_id; } elseif (null === $ppo->moduleType) { $classeurIds[] = $module->module_id; } } } } // Récupération des ressources if (null !== $ppo->moduleType) { $node = Kernel::getModParentInfo($ppo->moduleType, $ppo->moduleId); $modules = Kernel::getModEnabled($node['type'], $node['id'], _currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($modules as $module) { if ($module->module_type == 'MOD_CLASSEUR' && Kernel::getLevel('MOD_CLASSEUR', $module->module_id) >= PROFILE_CCV_READ) { $classeurIds[] = $module->module_id; } } } // Dédoublonnage des classeurs (responsables avec plusieurs enfants) $classeurIds = array_unique($classeurIds); $ppo->classeurs = array(); $classeurDAO = _dao("classeur|classeur"); foreach ($classeurIds as $classeurId) { $classeur = $classeurDAO->get($classeurId); $classeur->titre = $classeur->realName(); $ppo->classeurs[] = $classeur; } _classInclude('classeurservice'); $ppo->classeursOuverts = ClasseurService::getClasseursTreeState(); if (!is_array($ppo->classeursOuverts)) { $ppo->classeursOuverts = array(); } $this->flash->addCycle(); $toReturn = $this->_usePPO($ppo, '_arborescence_classeurs.tpl'); }
/** * Retourne l'ID du classeur personnel * * @return int ou false si classeur perso non récupéré */ public static function getClasseurPersonnelId() { $nodes = Kernel::getMyNodes(_currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($nodes as $node) { $modules = Kernel::getModEnabled($node->type, $node->id, _currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($modules as $module) { if ($module->module_type == "MOD_CLASSEUR") { // Identification du classeur personnel de l'utilisateur if (strpos($module->node_type, 'USER_') !== false && ($module->node_type == _currentUser()->getExtra('type') && $module->node_id == _currentUser()->getExtra('id'))) { return $module->module_id; } } } } return false; }
/** * Determine si l'usager peut afficher ou modifier la fiche d'une ecole * * @author Christophe Beyer <*****@*****.**> * @since 2008/08/04 * @param integer $pId Id de l'ecole * @param string $pAction Indication eventuelle sur une action precise. * @return boolean True s'il a le droit, false sinon */ public function canMakeInFicheEcole($pId, $pAction) { $can = false; //echo "canMakeInFicheEcole ($pId, $pAction)"; $session = Kernel::getSessionBU(); $myNodes = Kernel::getMyNodes(); if ($pAction == "VIEW") { return true; } //var_dump($myNodes); //var_dump($session); switch ($session['type']) { case 'USER_ENS': foreach ($myNodes as $node) { if ($node->type == 'BU_ECOLE' && $node->id == $pId && $node->droit >= 70) { if ($pAction == 'MODIFY') { $can = true; } } } break; case 'USER_VIL': if ($pAction == 'MODIFY_VILLE') { // Court-circuite du reste, canMakeInFicheEcole(MODIFY) ayant forcement ete fait avant return true; } foreach ($myNodes as $node) { if ($node->type == 'BU_ECOLE' && $node->id == $pId && $node->droit >= 70) { $can = true; } } if (!$can) { // On verifie si l'ecole est dans sa ville $rEcole = Kernel::getNodeInfo('BU_ECOLE', $pId, false); reset($myNodes); //var_dump($myNodes); //var_dump($rEcole['ALL']); foreach ($myNodes as $node) { if ($node->type == 'BU_VILLE' && $node->id == $rEcole['ALL']->vil_id_vi && $node->droit >= 70) { $can = true; } } } break; } return $can; }
public function _createContent(&$toReturn) { $ppo = new CopixPPO(); // Récupération des paramètres $ppo->classeurId = $this->getParam('classeurId'); $ppo->targetType = $this->getParam('targetType'); $ppo->targetId = $this->getParam('targetId'); $ppo->withMainLocker = $this->getParam('withMainLocker', true); $ppo->withSubLockers = $this->getParam('withSubLockers', Kernel::getLevel('MOD_CLASSEUR', $ppo->classeurId) >= PROFILE_CCV_PUBLISH ? true : false); // Récupération des classeurs accessibles à l'utilisateur pour les actions de masse (copie / déplacement) $classeurIds = array(); $nodes = Kernel::getMyNodes(_currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($nodes as $node) { $modules = Kernel::getModEnabled($node->type, $node->id, _currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($modules as $module) { if ($module->module_type == "MOD_CLASSEUR") { // Identification du classeur personnel de l'utilisateur if (strpos($module->node_type, 'USER_') !== false && ($module->node_type == _currentUser()->getExtra('type') && $module->node_id == _currentUser()->getExtra('id'))) { $ppo->classeurPersonnel = $module->module_id; $classeurIds[] = $module->module_id; } elseif (strpos($module->node_type, 'USER_') == false && Kernel::getLevel('MOD_CLASSEUR', $module->module_id) >= PROFILE_CCV_MEMBER) { $classeurIds[] = $module->module_id; } } } } // Dédoublonnage des classeurs (responsables avec plusieurs enfants) $classeurIds = array_unique($classeurIds); $ppo->classeurs = array(); $classeurDAO = _dao("classeur|classeur"); foreach ($classeurIds as $classeurId) { $classeur = $classeurDAO->get($classeurId); $ppo->classeurs[] = $classeur; } _classInclude('classeurservice'); $ppo->classeursOuverts = ClasseurService::getClasseursTreeState(); if (!is_array($ppo->classeursOuverts)) { $ppo->classeursOuverts = array(); } $toReturn = $this->_usePPO($ppo, '_selection_classeurs.tpl'); }
public function processGo() { $ppo = new CopixPPO(); if (!Kernel::is_connected()) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.nologin'), 'back' => CopixUrl::get('auth|default|login'))); } $user = _currentUser(); $ppo->ceriseprim_url = ''; $ppo->ceriseprim_admin = ''; if (preg_match("/^(?P<node_type>[\\w_]+)-(?P<node_id>\\d+)\$/", _request("id"), $regs)) { if ($regs['node_type'] == "BU_ECOLE" || $regs['node_type'] == "BU_CLASSE") { if ($regs['node_type'] == "BU_ECOLE") { $sql = "\n SELECT *\n FROM kernel_bu_ecole\n WHERE numero=:id\n "; $params = array(':id' => $regs['node_id']); } if ($regs['node_type'] == "BU_CLASSE") { $sql = "\n SELECT kernel_bu_ecole.RNE\n FROM kernel_bu_ecole\n JOIN kernel_bu_ecole_classe ON kernel_bu_ecole.numero=kernel_bu_ecole_classe.ecole\n WHERE kernel_bu_ecole_classe.id=:id\n "; $params = array(':id' => $regs['node_id']); } $ecoles_list = _doQuery($sql, $params); if (count($ecoles_list)) { $url = CopixConfig::get('default|conf_Ceriseprim_url') . "/" . $ecoles_list[0]->RNE . "/ico.php?user=personnel-" . $user->getExtra('id') . "&date=" . date('Y-m-d') . "&key=" . md5($ecoles_list[0]->RNE . "personnel-" . $user->getExtra('id') . date('Y-m-d') . CopixConfig::get('default|conf_Ceriseprim_secret')); $ppo->ceriseprim_url = $url; if ($regs['node_type'] == "BU_ECOLE") { $mynodes = Kernel::getMyNodes(); foreach ($mynodes as $node) { if ($node->type == $regs['node_type'] && $node->id == $regs['node_id'] && $node->droit >= 70) { $ppo->ceriseprim_admin = CopixConfig::get('default|conf_Ceriseprim_url') . "/support/iconito/updateIconito.php?rne=" . $ecoles_list[0]->RNE; } } } } } } return _arPPO($ppo, 'default.tpl'); }