Ejemplo n.º 1
0
 function get_modules($id, $all)
 {
     //coge las variables globales del fichero config.inc.php
     global $DDBB_TYPE, $DDBB_NAME, $IP_DDBB, $DDBB_USER, $DDBB_PASS, $DDBB_PORT, $TABLE_PREFIX;
     $this->db_type = $DDBB_TYPE;
     $this->db_name = $DDBB_NAME;
     $this->db_ip = $IP_DDBB;
     $this->db_user = $DDBB_USER;
     $this->db_passwd = $DDBB_PASS;
     $this->db_port = $DDBB_PORT;
     $this->table_prefix = $TABLE_PREFIX;
     //El parametro $all nos indica si se quieren todos los hijos, nietos...
     //a partir del id dado (0 para los padres), o solo los hijos de un solo padre.
     //se puede acceder a los usuarios por numero de campo o por nombre de campo
     $ADODB_FETCH_MODE = ADODB_FETCH_BOTH;
     //crea una nueva conexin con una bbdd (mysql)
     $this->db = NewADOConnection($this->db_type);
     //le dice que no salgan los errores de conexin de la ddbb por pantalla
     $this->db->debug = false;
     //realiza una conexin permanente con la bbdd
     $this->db->Connect($this->db_ip, $this->db_user, $this->db_passwd, $this->db_name);
     //mete la consulta
     $uno = 1;
     $this->sql = 'SELECT * FROM `modules` WHERE `parent` = \'' . $id . '\' AND `active` = ' . $uno . ' ORDER BY `order`';
     //la ejecuta y guarda los resultados
     $this->result = $this->db->Execute($this->sql);
     if ($this->result === false) {
         $this->error = 1;
         $this->db->close();
         return 0;
     }
     if ($id == 0 || $id == -2 || $_SESSION['super'] || $_SESSION['admin'] && $this->result->fields['name'] != 'modules') {
         $this->num = 0;
         while (!$this->result->EOF) {
             //cogemos los datos
             $tabla[$this->num]['id_module'] = $this->result->fields['id_module'];
             $tabla[$this->num]['name'] = $this->result->fields['name'];
             $tabla[$this->num]['name_web'] = $this->result->fields['name_web'];
             $tabla[$this->num]['path'] = $this->result->fields['path'];
             $tabla[$this->num]['parent'] = $this->result->fields['parent'];
             //nos movemos hasta el siguiente registro de resultado de la consulta
             $this->result->MoveNext();
             $this->num++;
         }
     } else {
         $this->num = 0;
         while (!$this->result->EOF) {
             //cogemos los datos
             $temp[$this->num]['id_module'] = $this->result->fields['id_module'];
             $temp[$this->num]['name'] = $this->result->fields['name'];
             $temp[$this->num]['name_web'] = $this->result->fields['name_web'];
             $temp[$this->num]['path'] = $this->result->fields['path'];
             $temp[$this->num]['parent'] = $this->result->fields['parent'];
             //nos movemos hasta el siguiente registro de resultado de la consulta
             $this->result->MoveNext();
             $this->num++;
         }
         $i = 0;
         $j = 0;
         $user = new users();
         $id_user = $_SESSION['ident_user'];
         $permission = new permissions_modules();
         while ($i != $this->num) {
             if ($permission->validate_per_module_menus($id_user, $temp[$i]['id_module']) == 1) {
                 $tabla[$j]['id_module'] = $temp[$i]['id_module'];
                 $tabla[$j]['name'] = $temp[$i]['name'];
                 $tabla[$j]['name_web'] = $temp[$i]['name_web'];
                 $tabla[$j]['path'] = $temp[$i]['path'];
                 $tabla[$j]['parent'] = $temp[$i]['parent'];
                 $j++;
             }
             //if
             $i++;
         }
     }
     //else
     $this->db->close();
     if ($all) {
         for ($i = 0; $i < count($tabla); $i++) {
             $tabla[$i]['hijos'] = $this->get_modules($tabla[$i]['id_module'], true);
         }
     }
     return $tabla;
 }
Ejemplo n.º 2
0
 //- El usuario no est� logeado pero el m�dulo es p�blico, en cuyo caso no habr�a problema
 //- El usuario est� logeado pero intenta entrar en un m�udlo donde no tiene permisos
 if (!isset($_SESSION['user']) && isset($_GET['module']) && $_GET['module'] != 'user_corps') {
     //Se comprueba si el modulo es p�blico, sino es as� se indica el error
     if ($modules->is_public_module($_GET['module']) == 0) {
         $module_name = 'error';
     } else {
         $module_name = $_GET['module'];
     }
 }
 //Se comprueba que el usuario tenga permisos sobre el m�dulo que aparece en la barra de direccion
 if (isset($_SESSION['user']) && isset($_GET['module'])) {
     if (!$_SESSION['super'] && !$_SESSION['admin']) {
         //Se comprueba si el modulo es p�blico si es as� se deja no hay problema, pero sino se tendr� que saber si tiene o no acceso a �l
         if ($modules->is_public_module($_GET['module']) == 0) {
             $permiso = new permissions_modules();
             //Se prepara para poder investigar los permisos en el modulo
             if (!isset($_GET['method'])) {
                 $method = null;
             } else {
                 $method = $_GET['method'];
             }
             if ($_GET['module'] != 'user_corps' && $method != 'select') {
                 if ($permiso->validate_per($_SESSION['user'], $_GET['module'], $method) == 0) {
                     $module_name = 'error';
                 }
             }
         }
     } else {
         if ($_SESSION['admin'] && !$_SESSION['super'] && ($_GET['module'] == 'modules' || $_GET['module'] == 'methods')) {
             $module_name = 'error';