Estoy trabajando con software personalizado aquí, así que no te preocupes por lo que sea Microsoft, abre cualquier cosa o cualquier otra cosa. Apeguémonos a la teoría de cómo esto debe ir unido.
Digamos que tengo un sistema de usuario / base de datos.
La base de datos tiene una tabla de usuarios y sus grupos de usuarios asociados (administrador, soporte de TI, administrador, secretario, cliente, invitado). Estos no son jerárquicos, sino membresías a grupos. Por ejemplo, Alice puede ser administrador y cliente si es necesario.
Los permisos para una aplicación se asignan al grupo, y en el caso de la asignación de múltiples grupos a un usuario, los permisos forman un simple OR binario de derechos (es decir, Admin tiene X, Guest tiene Y, luego el usuario obtiene X e Y).
Las aplicaciones son una forma de hacer las cosas en una aplicación, impiden el acceso o lo permiten. Por ejemplo, tiene acceso a "StackExchange" pero solo a Lectura, o tiene acceso a herramientas de publicación, moderador, etc.
Entonces, para recapitular, los usuarios obtienen grupos que rigen a qué derechos pueden acceder.
El concepto con el que estoy teniendo problemas es bloquear registros específicos para el grupo de usuarios, especialmente si estamos trabajando en varias aplicaciones. Entonces, por ejemplo, solo el grupo de administradores puede ver algunas publicaciones en la aplicación "StackExchange".
No quiero tener que agregar derechos a cada registro, y no quiero hacer un código de aplicación redundante con un cambio menor.
¿Cómo abordaría esto?