Modelado de roles usuarios y permisos
Publicado por Oscar (1 intervención) el 09/09/2017 00:39:48
Hola a todos!
Estoy desarrollando una API en nodejs y tengo una duda sobre el modelo de las entidades en mongodb, quisiera saber si alguno me puede dar una mano y orientarme.
La API será utilizada por múltiples negocios/empresas. de cada negocio/empresa se deben guardar sus datos basicos (nombre, direccion, etc) y cada empresa puede registrar a sus empleados y cada empleado puede desempeñar un rol (para poder hacer ciertas acciones dentro de la api).
Tengo muchas preguntas sobre cómo gestionar la relación entre Empresa - usuario - rol. porque los usuarios serán específicos de la empresa y los roles también lo serán.
Por ejemplo, yo construí un prototipo de esquema en mongoose y sería algo así, ¿esta mal plantearlo asi? ¿podría ser mejor si todo está en el esquema de la compañía?
Los permisos son fijos, es decir, cada empresa será capaz de crear los roles que desee e indicará qué permisos tendrán cada rol, esos permisos serán preestablecidos, no podrán crear sus propios permisos.
Desde ya muchas gracias a todos los que me puedan orientar!
Estoy desarrollando una API en nodejs y tengo una duda sobre el modelo de las entidades en mongodb, quisiera saber si alguno me puede dar una mano y orientarme.
La API será utilizada por múltiples negocios/empresas. de cada negocio/empresa se deben guardar sus datos basicos (nombre, direccion, etc) y cada empresa puede registrar a sus empleados y cada empleado puede desempeñar un rol (para poder hacer ciertas acciones dentro de la api).
Tengo muchas preguntas sobre cómo gestionar la relación entre Empresa - usuario - rol. porque los usuarios serán específicos de la empresa y los roles también lo serán.
Por ejemplo, yo construí un prototipo de esquema en mongoose y sería algo así, ¿esta mal plantearlo asi? ¿podría ser mejor si todo está en el esquema de la compañía?
Los permisos son fijos, es decir, cada empresa será capaz de crear los roles que desee e indicará qué permisos tendrán cada rol, esos permisos serán preestablecidos, no podrán crear sus propios permisos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var businessesSchema = new Schema({
_id: ObjectId
name: { type: String, required: true },
address: { type: String, required: true },
location: { type: String, required: true },
employees: [{
name: { type: String, required: true },
email: { type: String, required: true },
role: { type: Schema.ObjectId, ref: "Roles" },
}],
});
var rolesSchema = new Schema({
_id: ObjectId
business_id: { type: Schema.ObjectId, ref: "Businesses" },
name: { type: String, required: true },
permissions: [{ type: Schema.ObjectId, ref: "Permissions" }],
});
var permissionsSchema = new Schema({
_id: Number,
name: { type: String, required: true },
code: { type: String, required: true }
});
Desde ya muchas gracias a todos los que me puedan orientar!
Valora esta pregunta
0