Comece com os requisitos de domínio
Esquecendo-se de por que você não deseja que as funções dos usuários e as permissões associadas sejam dinâmicas, é necessário abordar isso da perspectiva "do que a empresa / usuário precisa".
Então, pergunte a si mesmo:
-
Esse negócio tem regras de permissão refinadas? Isso geralmente é verdade para empresas que lidam com informações de alta sensibilidade; por exemplo. bancos, qualquer organização com grande volume de negócios ou uma grande força de trabalho, etc.
-
As regras de permissão são altamente livres ou aplicadas a partir de um conjunto consistente de regras? ou seja, o cargo da pessoa dita suas permissões ou varia de projeto para projeto ou arquivo para arquivo, et al.
etc.
Esta é uma discussão que você deve ter com o proprietário do negócio / software. Durante a discussão, esqueça suas preocupações com a implementação, apenas fale sobre o que sua empresa precisa .
Em seguida, observe a implementação
Você precisa implementar os requisitos de domínio do seu software da melhor maneira possível para sua situação. Idealmente, você poderá definir um conjunto de funções de usuário que atribuam permissões básicas e, em seguida, permitir algumas atribuições de permissão dinâmicas onde necessário.
Se você ainda não conseguir encontrar uma maneira de implementá-lo sem uma base de código extremamente difícil de lidar, simplesmente retorne a decisão ao proprietário do negócio / software :
"Eu posso implementar suas regras de domínio atuais conforme discutimos ou posso fornecer um sistema fixo simplificado baseado em funções. As implicações disso são: mais tempo de desenvolvimento, manutenção mais cara, etc. O que você deseja fazer? "
Tente manter a discussão para as coisas que eles entenderão; tempos de entrega aproximados, custos associados, etc.
Conclusão
O ponto simples é que você não pode tomar decisões sobre regras de negócios (por exemplo, como as permissões são atribuídas) devido a um problema de implementação. Modele as regras como elas são ou explique o caso de negócios para alterá-las; isto é, porque você acha que é do interesse do negócio simplificar o sistema de permissões.