a2r
Version:
A2R Framework
37 lines (36 loc) • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const dbPool_1 = require("../dbPool");
/**
* Adds roles to user
* @param email User email
* @param roles Roles to add
*/
const addRolesToUser = async (email, ...roles) => {
const collection = await (0, dbPool_1.getCollection)('users');
await collection.updateOne({ _id: email }, { $addToSet: { roles: { $each: roles } } });
};
/**
* Removes roles from user
* @param email User email
* @param roles Roles to remove
*/
const removeRolesFromUser = async (email, ...roles) => {
const collection = await (0, dbPool_1.getCollection)('users');
await collection.updateOne({ _id: email }, { $pull: { roles: { $in: roles } } });
};
/**
* Checks user is in any of the given roles
* @param email User email
* @param roles Roles to check
*/
const isUserInRole = async (email, ...roles) => {
const collection = await (0, dbPool_1.getCollection)('users');
const user = await collection.findOne({ _id: email, roles: { $in: roles } }, { projection: { _id: 1 } });
return !!user;
};
exports.default = {
addRolesToUser,
removeRolesFromUser,
isUserInRole,
};