diff --git a/DBDiff/proxy.sql b/DBDiff/proxy.sql new file mode 100644 index 0000000..27ead1a --- /dev/null +++ b/DBDiff/proxy.sql @@ -0,0 +1,4 @@ +ALTER TABLE `proxy_utenti` ADD `guest` INT NOT NULL DEFAULT '0' AFTER `modifica`; + +INSERT INTO `pannello_vbc`.`livelli` (`id`, `livello`, `nome`) VALUES (NULL, '1', 'Libero'); +ALTER TABLE `moduli_page` ADD `livello` INT NOT NULL AFTER `pagina`; diff --git a/core/function.php b/core/function.php index 4e3a4f7..e79f841 100755 --- a/core/function.php +++ b/core/function.php @@ -345,7 +345,8 @@ function array_moduli () { moduli.id AS id, moduli.nome AS nome, moduli.directory AS directory, - moduli.descrizione AS descrizione + moduli.descrizione AS descrizione, + permessi.accesso AS accesso FROM utenti JOIN @@ -358,10 +359,10 @@ function array_moduli () { moduli.attivo = 1 "; - $menu[] = array("Home", $CONF['base_url']."/core/main.php",0,"Home Page"); + $menu[] = array("Home", $CONF['base_url']."/core/main.php",0,"Home Page",0); if ($UTENTE['admin']) { - $menu[] = array("Configurazione", $CONF['base_url']."/core/conf.php",0,"Modifica configurazione"); + $menu[] = array("Configurazione", $CONF['base_url']."/core/conf.php",0,"Modifica configurazione",0); $query .= " UNION DISTINCT SELECT moduli.id AS id, moduli.nome AS nome, @@ -379,7 +380,7 @@ function array_moduli () { $res = mysql_query( $query, $DB_ID ); while ($dato = mysql_fetch_array ($res)) { - $menu[] = array($dato['nome'], $CONF['base_url']."/".$dato['directory']."/index.php",$dato['id'], $dato['descrizione']); + $menu[] = array($dato['nome'], $CONF['base_url']."/".$dato['directory']."/index.php",$dato['id'], $dato['descrizione'], $dato['accesso']); } $menu[] = array("Cambio password", $CONF['base_url']."/core/chkpasswd.php",0,"Cambio Password"); @@ -437,10 +438,12 @@ function lista_moduli () { moduli_page JOIN moduli - ON - moduli.id = moduli_page.id_moduli + ON + moduli.id = moduli_page.id_moduli WHERE moduli_page.attivo = 1 + AND + moduli_page.livello <= ".$menu[$i][4]." AND moduli_page.id_moduli = ".$menu[$i][2]." ORDER BY @@ -465,6 +468,18 @@ function lista_moduli () { function diritti ($minimo) { global $UTENTE, $DB_ID, $CONF; + $query = " SELECT + livello + FROM + livelli + WHERE + nome = '$minimo' + "; + + $res = mysql_query( $query, $DB_ID ); + $dato = mysql_fetch_array ($res); + $minimo = $dato['livello']; + preg_match ('/^'.preg_replace('/\//','\/',$CONF['base_url']).'\/([^\/]+)\/.*/', $_SERVER['REQUEST_URI'], $trovato); $modulo = $trovato[1]; @@ -473,17 +488,25 @@ function diritti ($minimo) { FROM moduli JOIN - permessi ON moduli.id = permessi.id_moduli AND permessi.id_utenti = ".$UTENTE['id']." + permessi + ON + moduli.id = permessi.id_moduli + AND + permessi.id_utenti = ".$UTENTE['id']." WHERE moduli.directory = '$modulo' - AND + AND moduli.attivo = 1 UNION DISTINCT SELECT moduli.superadmin FROM moduli JOIN - utenti ON utenti.id = ".$UTENTE['id']." AND utenti.admin = 1 + utenti + ON + utenti.id = ".$UTENTE['id']." + AND + utenti.admin = 1 WHERE moduli.directory = '$modulo' "; @@ -572,4 +595,41 @@ function generateStrongPassword($length = 9, $add_dashes = false, $available_set return $dash_str; } +function html_spazi ($dati) { + global $CONF; + + print "
