Ciao e Buon Anno!
Hai menzionato “applicazione” senza specificare un linguaggio. Quindi, ingegneria del software in due passi:
1.Modellazione dei concetti: Attori (chi), Azioni (cosa), Autorizzazioni (come).
Se leggi inglese, ti consiglio questo articolo che parla di software design patterns e tante altre cose utili a un futuro programmatore (mods: è un articolo MSDN gratuito, non pubblicità mascherata): https://learn.microsoft.com/en-us/archive/msdn-magazine/2009/february/patterns-wpf-apps-with-the-model-view-viewmodel-design-pattern
2.Pseudocodice:
*** Modello attori ***
-- ContributorModel
- ContributorName
- ContributorActionModel
-- AuthorizedContributorModel
- ContributorName
- ContributorActionModel
*** Modello azioni ***
-- ContributorActionModel
- ActionName
- ContributorModel
- AuthorizationModel
*** Modello autorizzazioni ***
-– AuthorizationModel
- IsPending
- AuthorizedBy (pensa sempre in cybersecurity quando programmi, thank me later)