Strategia di configurazione dei ruoli

0

Siamo vicini per avviare un nuovo progetto utilizzando sf2 e, probabilmente, FosUserBundle .

Tenendo presente ciò: qual è la migliore strategia per definire i ruoli? L'app sarà utilizzata da più divisioni all'interno della nostra azienda (ogni divisione ha il suo manager e dipendenti regolari), così come gli utenti esterni, che possono essere divisi in 3 gruppi (per ora).

Sto arrivando con due possibili soluzioni:

  1. ogni ruolo rappresenta un'azione specifica nell'app , vale a dire l'aggiunta di una nuova azione dell'attività è descritta come task_new role. Gli utenti selezionati ottengono questo ruolo per poter aggiungere nuove attività.

  2. ogni ruolo rappresenta la capacità dell'utente e ogni azione controlla se l'utente ha questa capacità cioè: quando viene aggiunta una nuova attività, il controllore controlla se l'utente corrente ha ruolo task_access .

I really in qualche modo come approccio a questo problema nella nostra attuale app - c'è un posto dove solo l'amministratore ha accesso garantito, con l'elenco di tutte le azioni registrate. Gli utenti sono divisi in circa 10 gruppi e tutto ciò che devi fare è verificare che questo gruppo abbia accesso a questa azione. In questo caso non è richiesta alcuna manipolazione del codice, ma temo che genererà alcune limitazioni o ruoli che aumentano eccessivamente nella nuova app.

Ciò di cui ho davvero paura è passare troppo tempo a cambiare il codice di sicurezza in uno specifico controller / azione, voglio dire, quando un nuovo utente deve accedere a un posto specifico, dovrò andare al codice, gestirlo di nuovo ruolo, il codice crescerà e così via. Voglio mantenere questo tempo il più basso possibile e il più flessibile possibile.

Credo che ci siano alcune ottime soluzioni a questo problema. Ho ragione?

    
posta ex3v 24.07.2014 - 12:23
fonte

1 risposta

1

Per evitare di dover toccare il codice quando vengono ideati nuovi ruoli, utilizzerei una divisione a tre vie nella gestione dei miei utenti / ruoli:

  • Autorizzazioni definiscono le azioni che sono possibili. Ad esempio, potresti disporre di autorizzazioni separate per l'accesso in lettura, l'accesso in scrittura / modifica, la creazione di accesso, la modifica delle autorizzazioni e così via. Puoi anche consentire a moduli separati di definire set di autorizzazioni separati.
  • I ruoli rappresentano l'insieme di autorizzazioni che avranno i gruppi di utenti simili. Ad esempio, Manager, Utenti normali, Utenti esterni, Amministratori
  • Gli utenti hanno un ruolo (o forse più) all'interno del sistema. Questo è il livello in cui avviene l'autenticazione.

Se viene creato un nuovo ruolo che richiede un set di autorizzazioni diverso (ad esempio, un utente esperto), si tratta semplicemente di aggiungerlo all'elenco dei ruoli e di assegnare il set di autorizzazioni corretto.

    
risposta data 24.07.2014 - 14:32
fonte

Leggi altre domande sui tag