Estoy creando una aplicación MERN Stack. Estoy muy confundido acerca del permiso de acceso a las claves en mis esquemas mongoDb. Vengo de Firebase, lo que le permitió configurar controles de acceso de lectura/escritura a nivel de nodo en las reglas de Firebase. A continuación se muestra un ejemplo que deseo lograr.
Hay 3 esquemas:
UserSchema : { id : id, name : String , email : String } CompanySchema : { createdByID : ref : userSchema, team : [ref : userSchema], Id : id, name : String, description : String, } SubDivisionSchema : { createdById : ref : userSchema , company : ref : CompanySchema , name : String , calendar : [Object] }
El flujo que se da es que una Company
contrata Users
. Luego distribuyen a estos usuarios en subdivisiones. De forma predeterminada, todas las nuevas contrataciones en una empresa son del tipo de rol Team
. El propietario de la empresa puede elevar sus permisos a uno de los siguientes permisos.
PROPIETARIO, ADMINISTRADOR, RRHH, EQUIPO
A continuación se muestra lo que estos permisos pueden hacer:
Propietario : CRUD en Business y CRUD en todas las subdivisiones
Admin : RU en Business y CRUD en todas las subdivisiones
Recursos humanos : todo leído y solo se permite actualizar el team
en Business y todo R y solo se permite actualizar el calendario en todas las subdivisiones
Equipo : Solo lea en algunos campos en Negocios. Solo lea en la subdivisión a la que están asignados.
También tendré niveles de acceso de subdivisión, pero si puedo entender cómo dar control de acceso a nivel de clave en lugar de control de acceso a nivel de documento, creo que puedo trabajar desde allí.
¡Gracias!