@topgroup/diginext
Version:
A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.
47 lines (46 loc) • 2.27 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.migrateAllUsers = void 0;
const log_1 = require("diginext-utils/dist/xconsole/log");
const array_1 = require("../plugins/array");
const migrateAllUsers = async () => {
const { DB } = await Promise.resolve().then(() => __importStar(require("../modules/api/DB")));
const users = await await DB.find("user",
// { $or: [{ migratedAt: { $exists: false } }, { migratedAt: { $gte: dayjs().startOf("date"), $lte: dayjs().endOf("date") } }] },
{ migratedAt: { $exists: false } }, { populate: ["roles"], select: ["_id", "roles"] });
if (users.length === 0)
return;
const results = await Promise.all(users
.filter((user) => {
const fixedRoles = (0, array_1.filterUniqueItemWithCondition)(user.roles, "workspace", { field: "type", value: "admin" });
user.roles = fixedRoles.map((role) => role._id);
return user;
})
.map((user) => DB.updateOne("user", { _id: user._id }, { roles: user.roles, migratedAt: new Date() }, { select: ["_id"] })));
(0, log_1.log)(`[MIGRATION] migrateAllUsers() > Affected ${results.length} users.`);
return results;
};
exports.migrateAllUsers = migrateAllUsers;