UNPKG

dry-node

Version:

Initialiseur de structure Node Express typée et modulaire

63 lines (54 loc) 2.03 kB
const DryAccessUserModel = require("../../dry-module/dry-group-permission/dry-access-user/model/dry-access-user.model"); const DryPopulate = require("../dry-populates/dry-populate"); const DryGenerateDefaultPermissionFunction = require("./dry-generate-default-permission.function"); /** * * @param user * @param origin * @returns {Promise<{access: Query<Array<Document>, Document>, permissions: Query<(*&{statusAccess: *})|undefined, Document>}>} * @constructor */ async function DryUserPermissionsAccessFunction(user, origin = "login") { //access user let access = await DryAccessUserModel.find({ user: user._id, statusAccess: "Actif", }).populate(new DryPopulate().dryAccessUserMini()); if (origin !== "login") { access = await DryAccessUserModel.find({ user: user._id, }).populate(new DryPopulate().dryAccessUserMini()); } let permissions = [] /* if (!access || access.length === 0) { await DryGenerateDefaultPermissionFunction(user); access = await DryAccessUserModel.find({ user: user._id, statusAccess: "Actif", }).populate(new DryPopulate().dryAccessUserMini()); if (origin !== "login") { access = await DryAccessUserModel.find({ user: user._id, }).populate(new DryPopulate().dryAccessUserMini()); } }*/ permissions = access.map(el => { if (el.permission) { return { // ...el.permission, statusAccess: el.statusAccess, level: el.permission.level, code: el.permission.code, slug: el.permission.slug, label: el.permission.label, id: el.permission.id, _id: el.permission._id, }; } }); return { access, permissions } } module.exports = DryUserPermissionsAccessFunction;