dry-node
Version:
Initialiseur de structure Node Express typée et modulaire
63 lines (54 loc) • 2.03 kB
JavaScript
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;