MicProtocol / apps /api /dist /common /platform-admin.js
Benaah's picture
Upload folder using huggingface_hub
303c85f verified
Raw History Blame Contribute Delete
1.26 kB
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.deriveAdminRole = deriveAdminRole;
exports.assertPlatformAdmin = assertPlatformAdmin;
exports.isPlatformAdmin = isPlatformAdmin;
const common_1 = require("@nestjs/common");
const shared_types_1 = require("@micprotocol/shared-types");
function deriveAdminRole(user) {
if (user.adminRole)
return user.adminRole;
if (user.isAdmin)
return shared_types_1.AdminRole.SUPER_ADMIN;
return null;
}
async function assertPlatformAdmin(prisma, userId) {
const user = await prisma.user.findUnique({
where: { id: userId },
select: { isAdmin: true, adminRole: true, suspendedAt: true },
});
if (!user) {
throw new common_1.ForbiddenException("Admin privileges required");
}
if (user.suspendedAt) {
throw new common_1.ForbiddenException("Account is suspended");
}
if (!deriveAdminRole(user)) {
throw new common_1.ForbiddenException("Admin privileges required");
}
}
async function isPlatformAdmin(prisma, userId) {
try {
await assertPlatformAdmin(prisma, userId);
return true;
}
catch {
return false;
}
}
//# sourceMappingURL=platform-admin.js.map