- Home
- Categorie
- Coding e Sistemistica
- Joomla!
- modifica manuale su permessi manager
-
La modifica che ti avevo proposto è relativa ad un componente...ma...leggendo qua e la, mettendo insieme i pezzi e facendo varie prove sono giunto a...rullo di tamburi...una cosa che funziona ...ma per i motivi scritti prima non mi assumo alcun tipo di responsabilità sulla sicurezza o meno dell'utilizzo...
Primo passo è FONDAMENTALE effettuare il salvataggio del file che andremo a modificare...il file in oggetto è...
/administrator/modules/mod_menu/helper.php
Circa alla riga 126 troviamo la query che sceglie i componenti da visualizzare
$query = 'SELECT *' . ' FROM #__components' . ' WHERE '.$db->NameQuote( 'option' ).' <> "com_frontpage"' . ' AND '.$db->NameQuote( 'option' ).' <> "com_media"' . ' AND enabled = 1' . ' ORDER BY ordering, name'; ```Ora possiamo utilizzare il livello di accesso per modificare la query a piacimento utilizzando la variabile...
$user =& JFactory::getUser();
$user_type = $user->get('usertype');Nell' esempio successivo ho sostituito alla query principale, la lettura dalla varibile e le 2 query. La prima delle due query è quella standard che però renderemo visibile solamente ad Administrator e Super Administrator. La seconda per i Manager ai quali non faremo visualizzare il componente "com_prova". Ovviamente è personalizzabile a piacere...
$user =& JFactory::getUser();
$user_type = $user->get('usertype');if ($usertype !== "Manager") {
$query = 'SELECT *' .
' FROM' .
' WHERE '.$db->NameQuote( 'option' ).' <> "com_frontpage"' .
' AND '.$db->NameQuote( 'option' ).' <> "com_media"' .
' AND enabled = 1' .
' ORDER BY ordering, name';
}
else {
$query = 'SELECT *' .
' FROM' .
' WHERE '.$db->NameQuote( 'option' ).' <> "com_frontpage"' .
' AND '.$db->NameQuote( 'option' ).' <> "com_media"' .
' AND '.$db->NameQuote( 'option' ).' <> "com_prova"' .
' AND enabled = 1' .
' ORDER BY ordering, name';
}:ciauz:
-
Ciao kre0, come a sempre grazie mille in anticipo, sicuramente funzionerà e sono curioso di provarla ma oggi non sono certo di riuscirci, ho avuto altri imprevisti e non ho il lavoro sotto mano, ma appena posso (prestissimo) provo e ti faccio sapere...però per ora sono anche curioso del fatto che dici "non mi assumo alcun tipo di responsabilità sulla sicurezza o meno dell'utilizzo", cosa vorresti dire esattamente? per caso la sicurezza di Joomla potrebbe essere poco sicuro e potrebbe essere più vulnerabile agli attachi? oppure riguarda solo una questione di funzionamento? nel primo caso effettivamente sarebbe un pò rischioso, nel secondo invece basta semplicemente provare se tutto funziona bene e il gioco è fatto!
-
...non credo che abbia implicazioni sulla sicurezza, non cambia oggettivamente molto...è solo una query...ma non si sa mai
-
...allora sono riuscito a fare una prova solo che non funziona...praticamente ho sostituito:
$query = 'SELECT *' . ' FROM #__components' . ' WHERE '.$db->NameQuote( 'option' ).' <> "com_frontpage"' . ' AND '.$db->NameQuote( 'option' ).' <> "com_media"' . ' AND enabled = 1' . ' ORDER BY ordering, name';
con:
$user =& JFactory::getUser(); $user_type = $user->get('usertype'); if ($usertype !== "Manager") { $query = 'SELECT *' . ' FROM' . ' WHERE '.$db->NameQuote( 'option' ).' <> "com_frontpage"' . ' AND '.$db->NameQuote( 'option' ).' <> "com_media"' . ' AND enabled = 1' . ' ORDER BY ordering, name'; } else { $query = 'SELECT *' . ' FROM' . ' WHERE '.$db->NameQuote( 'option' ).' <> "com_frontpage"' . ' AND '.$db->NameQuote( 'option' ).' <> "com_media"' . ' AND '.$db->NameQuote( 'option' ).' <> "com_jsecure"' . ' AND enabled = 1' . ' ORDER BY ordering, name'; }
per nascondere il componente JSecure ai Manager solo che non funziona, la voce resta ancora nel menù Componenti
-
kre0 sicuro che hai provato e funziona? perché ame proprio non ne vuole sapere...oppure ho capito male io?
-
...non c'è nessuno che mi può aiutare sulla base di questi elementi?
-
Kre0 ma che fine hai fatto? mi hai lasciato così, sul più bello (anzi brutto)?
-
...ragazzi ma possibile mai che non esiste nessun metodo per rimuovere manualmente dei componenti per alcuni utenti? mi sembra strano, anche perché non riesco a trovare nulla neanche in giro per il web
-
Ciao,
dovresti utilizzare un componente che gestisca le estensioni legate ai singoli utenti.Se cerchi su extension qualcosa trovi
-
...ho già provato più di un componente (free) ma alcuni non mi facevano fare esattamente ciò che mi serviva, altri davano problemi vari (ad es di visualizzazione, altri non si traducevano, etc) e inoltre a me occorre solo rimuovere queste due voci, mi sembra inutile utilizzare un componente solo per questo quando basta seplicemente commentare o fare una piccola modifica di una stringa, credo che la cosa sia fattibile e neanche complicata, solo che non si sa perché non riesco a capire come si possa fare, ho aperti anche altre discussioni su altri forum ma nessuno ha saputo darmi risposte in merito...ho fatto alcune ricerche su altri forum in inglese e ho visto che si è parlato molto spesso di questo solo che in alcuni casi nello specifico non riguardava esattamene ciò che mi serviva e poi non conosco bene l'inglese, quindi non sono riuscito a ricarci nulla però ho capito che è possibile solo che nei forum in italiano dove ho scritto chi per un motivo e chi per un altro alla fine non sono riuscito ad arrivare a nulla