Ragioni per non avere un sistema flessibile di gestione dei ruoli

5

La nostra applicazione web .NET ha la capacità di aggiungere ruoli dinamicamente e assegnare funzionalità (le definiamo in un enum di applicazione) a quel ruolo. Quindi quelle funzionalità sono definite da noi (il nostro cliente) in base alle sue esigenze di business. Alcuni di questi possono essere veramente specifici e rendono il codice davvero non mantenibile e non c'è alcuna possibilità di avere qualcosa di generico nella nostra applicazione.

Quindi la mia domanda è quali sono le principali ragioni diverse dall'attuale approccio al codice è irrinunciabile che so è una grande ragione per non andare con questo, ma io sono principalmente interessato a ragioni che possono essere capite da qualcuno che non ha familiarità con gli aspetti tecnici della programmazione.

    
posta Aleks 07.03.2016 - 00:15
fonte

1 risposta

5

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:

  1. 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.

  2. 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.

    
risposta data 07.03.2016 - 00:51
fonte