Tralasciando login e logut, salvataggio di sessioni e cookie, vorrei sapere come sarebbe meglio (o come fate voi) organizzare la struttura delle cartelle o degli script. Mi spiego meglio:
mettiamo che abbia, all'inizio, 3 livelli di privilegi:
amministratore
moderatore
utente
questi utenti vengono trattati tutti ugualmente per le pagine pubbliche, mentre poi devono svolgere diverse funzioni nelle pagine private, ad esempio:
l'amministratore deve gestire gli utenti, le news e le informazioni su se stesso
il moderatore deve gestire le news e le informazioni su se stesso
l'utente deve gestire le informazioni su se stesso
insomma una cosa scalabile, in cui a partire dall'alto si possono fare tutte le cose che si possono fare nei livelli inferiori e non viceversa
prevedendo anche l'aggiunta di nuovi livelli, con permessi sulle funzioni gestite sul database, come conviene strutturare l'albero delle cartelle o degli script?
- creare un unica cartella "/private/" in cui mettere tutti gli script e poi le pagine strutturarle con degli switch? tipo:
Codice PHP:
switch (variabile privilegio)
case "amministratore"
mostra il pannello completo
case "moderatore"
mostra pannello completo ma nascondi quello sulla gestione degli utenti
...
- creare un unica cartella "/private/" in cui mettere tutti gli script e poi le pagine strutturarle con un controllo per ogni cosa da mostrare? tipo:
Codice PHP:
if (privilegio >= amministratore)
mostra pannello gestione utenti
if (privilegio >= moderatore)
mostra pannello gestione news
if (privilegio >= utente)
mostra pannello proprie info
...
- creare una cartella per ogni livello in cui si differenziano gli script, tipo "/amministratore/", "/moderatore/", "/utente/"
i miei dubbi sorgono in particolare dal fatto che ognuno dei tre metodi (o se ce ne sono altri), possono incontrare problemi all'aumentare dei livelli o della complessità degli script.
il primo può essere molto ridondante perchè per ogni script di un livello dovrei replicare il codice nei "case" dei livelli superiori
l'ultimo credo sia quasi irrealizzabile se si prevede di far gestire la creazione di nuovi livelli dall'amministratore perchè questo dovrebbe rimettere mano al codice e copiare parte dei file .php nella nuova cartella "/nuovolivello/"
il secondo mi sembra quello migliore tra i 3 ma non sono sicuro che sia "il migliore" in generale.
insomma mi piacerebbe sapere come si struttura un progetto di questo tipo, dato che guardando il codice di aree riservate di forum o blog mi sono perso quasi subito!
grazie