コード例 #1
0
 /**
  * Recherche rÈcursive du droit le plus fort d'un utilisateur sur un noeud.
  *
  * @return  integer Droit (entre 0 et 70).
  * @author  FrÈdÈric Mossmann <*****@*****.**>
  */
 public function getLevel_r($node_type, $node_id, $user_type = "-1", $user_id = "-1", $fusible = 9)
 {
     if ($fusible-- <= 0) {
         return 0;
     }
     $level = (int) Kernel::getLevel($node_type, $node_id, $user_type, $user_id);
     $node = Kernel::getNodeParents($node_type, $node_id);
     foreach ($node as $parent_node) {
         $level = max($level, Kernel::getLevel_r($parent_node['type'], $parent_node['id'], $user_type, $user_id, $fusible));
     }
     return $level;
 }
コード例 #2
0
 public function checkLoginAccess($login)
 {
     if (trim($login) == '') {
         die('Pas de login dans l\'URL');
     }
     $userinfo = Kernel::getUserInfo('LOGIN', $login);
     if (0 == sizeof($userinfo)) {
         die('Login inconnu');
     }
     $level = 0;
     $level = Kernel::getLevel_r($userinfo['type'], $userinfo['id']);
     $level = max($level, Kernel::getLevel_r('ROOT', '0'));
     // Test via le module assistance
     $ok = false;
     $animateur_dao =& CopixDAOFactory::create("kernel|kernel_animateurs");
     $animateur = $animateur_dao->get(_currentUser()->getExtra("type"), _currentUser()->getExtra("id"));
     if ($animateur && isset($animateur->can_comptes) && $animateur->can_comptes) {
         $assistance_service =& CopixClassesFactory::Create('assistance|assistance');
         $user_assistance = $assistance_service->getAssistanceUsers();
         if (!$user_assistance) {
             return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('assistance||users', array('error' => 'forbidden')));
         }
         foreach ($user_assistance as $ville_id => $ville) {
             foreach ($ville as $ecole_id => $ecole) {
                 foreach ($ecole->personnels as $personnel_id => $personnel) {
                     if ($personnel->login == $login) {
                         $ok = true;
                         // echo "<pre>"; print_r($personnel); die("</pre>");
                     }
                 }
             }
         }
         if ($ok) {
             $level = 70;
         }
     }
     if ($level < 70) {
         // A vérifier...
         die('Pas le droit !');
     }
     return $userinfo;
 }