Topic: ACL ma anche no. Che ne dite di...
stavo provando a cimentarmi con le ACL ma non mi piacciono... troppo macchinoso, troppe query... troppo bleah da far andare ![]()
stavo pensando ad ampliare una soluzione che ho già adottato, qualcosa di simile a questo:
groups -> id, username, password etc
groups_users -> collegamento fra utenti e gruppi... che hanno relazione habtm
users -> id, username, password etc
permissions -> id, group_id, controller, action, granted (booleano), in sostanza qua ci stanno i controller e le action, tramite una lista che viene generata da una funzione apposita (possibile? credo di si...), granted è un booleano, indica se il gruppo ha i permessi oppure no di usare quella funzione. esiste una action fittizia "*" che indica che il gruppo può fare qualunque cosa su quel controller
e questo è, pressappoco, il database
poi ci sarebbe un semplice backend per gestire il tutto
infine, e qua è dove avviene il controllo, pensavo ad una requestAction o qualcosa di simile che faccia il controllo dei permessi, qualcosa tipo
function vattelapesca() {
$this->requestAction('controller' => 'permissions', 'action' => 'check', named => array('con' => 'miocontroller', 'act' => 'miaaction');
}
/* controller permissions, o meglio un component forse */
function check ($con, $act) {
controllo se l'utente è loggato e a quale gruppo appartiene, se non è loggato appartiene al gruppo "guests"
recupero il group_id
controllo nella tabella delle permissions se ha i permessi "granted" per il controller e l'azione, in caso affermativo return true, altrimenti lo sbatto alla pagina di login, o a quella di partenza avvisandolo che non ha i permessi per compiere quell'azione...
}il vantaggio di questo sistema è che, utilizzando la stessa funzione, si potrebbe creare anche un'estensione linkIfPermitted dell'helper html...
che dite, potrebbe funzionare? potrebbe essere funzionale? comincio a scrivere?![]()
Last edited by ToX (11-03-2009 18:24:34)