Inizia con i requisiti del dominio
Dimenticando perché non si desidera che i ruoli utente e le autorizzazioni associate siano dinamici, è necessario affrontarli dal punto di vista "di cosa hanno bisogno l'azienda / l'utente".
Quindi, chiediti:
-
Questa azienda ha regole di autorizzazione finemente granulose? Questo è solitamente vero per le aziende che gestiscono informazioni ad alta sensibilità; per esempio. banche, qualsiasi organizzazione con un fatturato elevato o una forza lavoro di grandi dimensioni, ecc.
-
Le regole di autorizzazione sono in forma estremamente libera o vengono applicate da un insieme coerente di regole? cioè, il titolo di lavoro della persona determina le sue autorizzazioni o varia da progetto a progetto o da file a file, ecc.
ecc.
Questa è una discussione che dovresti avere con il proprietario del business / software. Durante la discussione dimentica i tuoi problemi di implementazione, parla solo di ciò di cui la sua azienda ha bisogno .
Quindi guarda l'implementazione
Devi implementare i requisiti di dominio del tuo software nel modo migliore possibile per la tua circostanza. Idealmente, sarai in grado di definire una serie di ruoli utente che assegnano le autorizzazioni di base e quindi consentire alcune assegnazioni di permessi dinamici, se necessario, in cima a quello.
Se ancora non riesci a trovare un modo per implementarlo senza una base di codice estremamente difficile da gestire, allora semplicemente riporta la decisione al proprietario dell'attività / del software :
"Posso implementare le tue attuali regole di dominio come discusso o posso fornirti un sistema basato su ruoli fissi semplificato Le implicazioni di questo sono: più tempo di sviluppo, manutenzione più costosa, ecc. Cosa vuoi fare? ? "
Cerca di mantenere la discussione su cose che capiranno; tempi di consegna relativi approssimativi, costi associati, ecc.
Conclusione
Il punto semplice è che non è possibile prendere decisioni sulle regole aziendali (come il modo in cui vengono assegnate le autorizzazioni) a causa di un problema di implementazione. O modella le regole come sono o spiega il business case per cambiarle; cioè, perché pensi che sia nell'interesse dell'azienda semplificare il sistema dei permessi.