diff --git a/server/services/auth/controllers/register.ts b/server/services/auth/controllers/register.ts index c04c7a4..f76d311 100644 --- a/server/services/auth/controllers/register.ts +++ b/server/services/auth/controllers/register.ts @@ -1,14 +1,22 @@ -import {eq} from "drizzle-orm"; -import {db} from "../../../../database/dbclient.js"; -import {users} from "../../../../database/schema/users.js"; -import {createPassword} from "../utils/createPassword.js"; -import {setSysAdmin} from "./userRoles/setSysAdmin.js"; +import { eq } from "drizzle-orm"; +import { db } from "../../../../database/dbclient.js"; +import { users } from "../../../../database/schema/users.js"; +import { createPassword } from "../utils/createPassword.js"; +import { setSysAdmin } from "./userRoles/setSysAdmin.js"; +import { createLog } from "../../logger/logger.js"; -export const registerUser = async (username: string, password: string, email: string) => { +export const registerUser = async ( + username: string, + password: string, + email: string +) => { const usercount = await db.select().from(users); // make sure the user dose not already exist in the system - const userCheck = await db.select().from(users).where(eq(users.username, username)); + const userCheck = await db + .select() + .from(users) + .where(eq(users.username, username)); if (userCheck.length === 1) { return { @@ -25,19 +33,27 @@ export const registerUser = async (username: string, password: string, email: st try { const user = await db - .insert(users) - .values({username, email, password}) - .returning({user: users.username, email: users.email}); + .insert(users) + .values({ username, email, password }) + .returning({ user: users.username, email: users.email }); if (usercount.length <= 1) { - console.log(`${username} is the first user and will be set to system admin.`); - const updateUser = await db.select().from(users).where(eq(users.username, username)); + createLog( + "info", + "auth", + "auth", + `${username} is the first user and will be set to system admin.` + ); + const updateUser = await db + .select() + .from(users) + .where(eq(users.username, username)); setSysAdmin(updateUser, "systemAdmin"); } - return {sucess: true, message: "User Registered", user}; + return { sucess: true, message: "User Registered", user }; } catch (error) { - console.log(error); + createLog("error", "auth", "auth", `${error}`); return { success: false, message: `${username} already exists please login or reset password, if you feel this is an error please contact your admin.`, diff --git a/server/services/auth/routes/userAdmin/setUserRoles.ts b/server/services/auth/routes/userAdmin/setUserRoles.ts index 6f8f190..51f457f 100644 --- a/server/services/auth/routes/userAdmin/setUserRoles.ts +++ b/server/services/auth/routes/userAdmin/setUserRoles.ts @@ -9,63 +9,72 @@ import { responses } from "../../../../globalUtils/routeDefs/responses.js"; const app = new OpenAPIHono(); const responseSchema = z.object({ - success: z.boolean().openapi({ example: true }), - message: z.string().optional().openapi({ example: "user access" }), - data: z.array(z.object({})).optional().openapi({ example: [] }), + success: z.boolean().openapi({ example: true }), + message: z.string().optional().openapi({ example: "user access" }), + data: z.array(z.object({})).optional().openapi({ example: [] }), }); const UserAccess = z.object({ - username: z - .string() - .regex(/^[a-zA-Z0-9_]{3,30}$/) - .openapi({ example: "smith034" }), - module: z.string().openapi({ example: "production" }), - role: z.string().openapi({ example: "viewer" }), - override: z.string().optional().openapi({ example: "secretString" }), + username: z + .string() + .regex(/^[a-zA-Z0-9_]{3,30}$/) + .openapi({ example: "smith034" }), + module: z.string().openapi({ example: "production" }), + role: z.string().openapi({ example: "viewer" }), + override: z.string().optional().openapi({ example: "secretString" }), }); app.openapi( - createRoute({ - tags: ["Auth:admin"], - summary: "Sets Users access", - method: "post", - path: "/setuseraccess", - middleware: [ - authMiddleware, - hasCorrectRole(["admin", "systemAdmin"], "admin"), - ], - description: "When logged in you will be able to grant new permissions", - request: { - body: { - content: { - "application/json": { schema: UserAccess }, + createRoute({ + tags: ["Auth:admin"], + summary: "Sets Users access", + method: "post", + path: "/setuseraccess", + middleware: [ + authMiddleware, + hasCorrectRole(["admin", "systemAdmin"], "admin"), + ], + description: "When logged in you will be able to grant new permissions", + request: { + body: { + content: { + "application/json": { schema: UserAccess }, + }, + }, }, - }, - }, - responses: responses(), - }), - async (c) => { - //apiHit(c, { endpoint: "api/auth/setUserRoles" }); - const { username, module, role, override } = await c.req.json(); - try { - const access = await setUserAccess(username, module, role, override); - //return apiReturn(c, true, access?.message, access?.data, 200); - return c.json( - { success: access.success, message: access.message, data: access.data }, - 200 - ); - } catch (error) { - console.log(error); - //return apiReturn(c, false, "Error in setting the user access", error, 400); - return c.json( - { - success: false, - message: "Error in setting the user access", - data: error, - }, - 400 - ); + responses: responses(), + }), + async (c) => { + //apiHit(c, { endpoint: "api/auth/setUserRoles" }); + const { username, module, role, override } = await c.req.json(); + try { + const access = await setUserAccess( + username, + module, + role, + override + ); + //return apiReturn(c, true, access?.message, access?.data, 200); + return c.json( + { + success: access.success, + message: access.message, + data: access.data, + }, + 200 + ); + } catch (error) { + console.log(error); + //return apiReturn(c, false, "Error in setting the user access", error, 400); + return c.json( + { + success: false, + message: "Error in setting the user access", + data: error, + }, + 400 + ); + } } - } ); export default app; diff --git a/server/services/notifications/notifyService.ts b/server/services/notifications/notifyService.ts index 2ddf44f..e4225c6 100644 --- a/server/services/notifications/notifyService.ts +++ b/server/services/notifications/notifyService.ts @@ -9,6 +9,7 @@ import { createLog } from "../logger/logger.js"; import { note, notificationCreate } from "./utils/masterNotifications.js"; import { startNotificationMonitor } from "./utils/processNotifications.js"; import notifyStats from "./routes/getActiveNotifications.js"; + const app = new OpenAPIHono(); const routes = [sendemail, notifyStats] as const;