|
|
|
@ -5,9 +5,11 @@ const { Invite } = require("../models/invite"); |
|
|
|
const { SystemSettings } = require("../models/systemSettings"); |
|
|
|
const { Telemetry } = require("../models/telemetry"); |
|
|
|
const { User } = require("../models/user"); |
|
|
|
const { DeptUsers } = require("../models/deptUsers"); |
|
|
|
const { DocumentVectors } = require("../models/vectors"); |
|
|
|
const { Workspace } = require("../models/workspace"); |
|
|
|
const { WorkspaceChats } = require("../models/workspaceChats"); |
|
|
|
const prisma = require("../utils/prisma"); |
|
|
|
const { |
|
|
|
getVectorDbClass, |
|
|
|
getEmbeddingEngineSelection, |
|
|
|
@ -80,6 +82,47 @@ function adminEndpoints(app) { |
|
|
|
} |
|
|
|
); |
|
|
|
|
|
|
|
app.post( |
|
|
|
"/admin/users/add/:deptId", |
|
|
|
[validatedRequest, strictMultiUserRoleValid([ROLES.admin, ROLES.manager])], |
|
|
|
async (request, response) => { |
|
|
|
try { |
|
|
|
const currUser = await userFromSession(request, response); |
|
|
|
const { deptId } = request.params; |
|
|
|
const newUserParams = reqBody(request); |
|
|
|
const roleValidation = validRoleSelection(currUser, newUserParams); |
|
|
|
|
|
|
|
if (!roleValidation.valid) { |
|
|
|
return response.status(400).json({ error: roleValidation.error }); |
|
|
|
} |
|
|
|
|
|
|
|
await prisma.$transaction(async () => { |
|
|
|
try { |
|
|
|
const { user: newUser, error } = await User.create(newUserParams); |
|
|
|
console.log("newUser", newUser); |
|
|
|
|
|
|
|
const deptUser = await DeptUsers.create({ |
|
|
|
data: { userId: newUser.id, deptId: deptId }, |
|
|
|
}); |
|
|
|
|
|
|
|
await EventLogs.logEvent( |
|
|
|
"user_created", |
|
|
|
{ userName: newUser.username, createdBy: currUser.username }, |
|
|
|
currUser.id |
|
|
|
); |
|
|
|
|
|
|
|
response.status(200).json({ user: newUser, error }); |
|
|
|
} catch (error) { |
|
|
|
throw new Error(`Transaction failed: ${error.message}`); |
|
|
|
} |
|
|
|
}); |
|
|
|
} catch (e) { |
|
|
|
console.error("Error creating user and dept user association:", e); |
|
|
|
response.status(500).json({ error: "Internal Server Error" }); |
|
|
|
} |
|
|
|
} |
|
|
|
); |
|
|
|
|
|
|
|
// app.post(
|
|
|
|
// "/admin/users/new",
|
|
|
|
// [validatedRequest, strictMultiUserRoleValid([ROLES.admin, ROLES.manager])],
|
|
|
|
|