Definición de roles

En esta sección, analizaremos cómo abordar los roles de modelado en general para los permisos con Hasura.

Tradicionalmente, considerará varios roles basados en las responsabilidades que se asignan al usuario.

En el modelo de la aplicación slack, un análisis rápido le dará posibilidades para varios roles. Existen users de la aplicación, workspace owners que controlan y gestionan el espacio de trabajo, workspace admins que tienen un subconjunto de permisos para gestionar el espacio de trabajo, channel admins y demás. Pero lo importante a tener en cuenta es que son todos users de la aplicación, solo que tienen más permisos para leer/escribir algunos datos. Esto nos deja definir un solo rol llamado user que puede acomodar la capa de permiso anterior. Veremos cómo se hace en las secciones posteriores.

Lo más probable es que solo necesite un rol con Hasura para los usuarios de la aplicación. Pero hay casos en los que realmente necesita varios roles para controlar el acceso de datos.

El caso para varios roles

Entonces, ¿cuándo se utilizan varios roles para definir los permisos? Echemos un vistazo a algunos de los casos de uso.

Con inicio de sesión frente a datos de acceso público

Cuando algunos de los datos en la aplicación son visibles públicamente, pero algunos solo están disponibles para los usuarios registrados, entonces la opción adecuada es tener varios roles. En la aplicación slack, se supone que todo está disponible solo para los usuarios registrados.

Diferentes accesos a las columnas

En los casos en que las columnas a las que se puede acceder difieran en función de quién está registrado, entonces se utilizan varios roles. Por ejemplo, en el modelo de la aplicación slack, el propietario del espacio de trabajo puede ver algunas columnas que son sensibles y con acceso de lectura restringido a otros usuarios, entonces naturalmente, necesitamos definir varios roles.

Equipos administrador/soporte de backend

Si la aplicación tiene equipos de administrador/atención al cliente/análisis que necesitan acceso de lectura en todas las tablas sin restricciones, entonces tendrán sus propios roles individuales.

Puede lograrlo con un solo rol si no tiene las restricciones anteriores.

Did you find this page helpful?
Start with GraphQL on Hasura for Free
  • ArrowBuild apps and APIs 10x faster
  • ArrowBuilt-in authorization and caching
  • Arrow8x more performant than hand-rolled APIs
Promo
footer illustration
Brand logo
© 2024 Hasura Inc. All rights reserved
Github
Titter
Discord
Facebook
Instagram
Youtube
Linkedin