[Typo3-UG Italy] Permessi di accesso
Roberto Torresani
erreti at siel.it
Fri Oct 21 14:14:16 CEST 2005
Ciao!
Tempo fa avevo scritto alla ml chiedendo aiuto su un problema di permessi:
io avevo bisogno di dare come limitazione ad una pagina piu' gruppi e rendere
quella pagina visibile solo dagli utenti che appartenevano a tutti i gruppi.
Dopo vari tentativi sono arrivato alla soluzione. Spero di non aver creato
dei buchi di cui non mi sono accorto, nel caso provvedero' a correggerli e
farvi sapere.
Ho installato il modulo "ingmar_accessctrl" che permette di assegnare ad
una pagina (o componente) piu' gruppi di accesso. Questo non mi andava
bene perche' permetteva a chiunque appartenesse ad uno o piu' dei gruppi
inseriti di visualizzare la pagina.
Ho modificato il file "typo3conf/ext/ingmar_accessctrl/class.ux_t3lib_pageSelect.php"
sostituendo la funzione "getMultipleGroupsWhereClause($field)" con il
seguente codice:
function getMultipleGroupsWhereClause($field) {
$memberGroups = t3lib_div::intExplode(",",$GLOBALS['TSFE']->gr_list);
$orChecks=array();
$orChecks[]=$field.'=""'; // If the field is empty, then OK
$orChecks[]=$field.'="0"'; // If the field contsains zero, then OK
$orChecksRoby=array();
$roby_elenco="";
$query = "SELECT * FROM PAGES";
$res = mysql(TYPO3_db,$query);
//echo mysql_error();
//$count = mysql_num_rows($res);
foreach($memberGroups as $value) {
if ($value <= 0) {
$orChecks[]='('.$field.' LIKE "%,'.$value.',%" OR '.
$field.' LIKE "'.$value.',%" OR '.
$field.' LIKE "%,'.$value.'" OR '.
$field.'="'.$value.'")';
} else {
$orChecks[]='('.$field.'="'.$value.'")';
if ($roby_elenco=="") {
$roby_elenco=$value;
} else {
$roby_elenco=$roby_elenco.",".$value;
}
}
if ($roby_elenco) $orChecks[]='('.$field.'="'.$roby_elenco.'")';
}
return ' AND ('.implode(' OR ',$orChecks).')';
}
Riporto anche una tabellina su come si comportano i permessi (1 e 2 sono
i gruppi):
Permessi pagina Permessi utente Visualizza pagina
1 1 SI
1 2 NO
1 1,2 SI
1,2 1 NO
1,2 2 NO
1,2 1,2 SI
Spero che a qualcuno possa essere utile la cosa o se vedete qualche problema
che ho creato....
Grazie
Roberto
More information about the TYPO3-UG-italy
mailing list