dipende su cosa metti i permessi perchè ci sono vari tipi di permessi... ci sono i permessi sulle "funzionalità" dell'applicazione ( accedere a determinate sezioni, che so, "prodotti", "ordini", "magazzino" ) e ci sono permessi sugli oggetti dell'applicazione (creare prodotti, cancellarli, modificarli, modificare "solo i suoi prodotti" o quelli creati da un utente del gruppo, "vedere" solo i propri prodotti o quelli creati dagli utenti del grupo, etc). Quindi dipende molto da come strutturi la cosa. Mentre sul secondo esempio si parla di acl, e il bitwise si riduce molto perchè i tipi di permessi che puoi dare sono di tipo crud (con la R estesa anche alle casistiche "entita di gruppo, di utente del gruppo, personale" ), sulla prima si può ricondurre la cosa ad un flag 0/1 nei permessi associati al profilo dell'utente. Dovresti guardare bene come gestiscono la cosa i framework piu usati, perchè comunque stare a reinventare la ruota è controproducente. Ci sono framework (zend e symfony ad esempio) che forniscono i moduli dell'acl separati da tutto il resto, framework acl dedicati, etc. Puoi cimentarti da solo, è vero, di certo non è una cosa semplice quanto si può pensare, perchè più aumentano le esigenze più complicata è l'analisi e l'implementazione