refactor: update

This commit is contained in:
Mauricio Siu
2025-02-14 02:40:11 -06:00
parent ca217affe6
commit b6c29ccf05
18 changed files with 154 additions and 147 deletions

View File

@@ -51,6 +51,9 @@ export const createInvitation = async (
export const findUserById = async (userId: string) => {
const user = await db.query.users_temp.findFirst({
where: eq(users_temp.id, userId),
// with: {
// account: true,
// },
});
if (!user) {
throw new TRPCError({

View File

@@ -15,6 +15,7 @@ import encode from "hi-base32";
import { TOTP } from "otpauth";
import QRCode from "qrcode";
import { IS_CLOUD } from "../constants";
import { findUserById } from "./admin";
export type Auth = typeof auth.$inferSelect;
@@ -131,14 +132,14 @@ export const updateAuthById = async (
return result[0];
};
export const generate2FASecret = async (authId: string) => {
const auth = await findAuthById(authId);
export const generate2FASecret = async (userId: string) => {
const user = await findUserById(userId);
const base32_secret = generateBase32Secret();
const totp = new TOTP({
issuer: "Dokploy",
label: `${auth?.email}`,
label: `${user?.email}`,
algorithm: "SHA1",
digits: 6,
secret: base32_secret,

View File

@@ -14,6 +14,7 @@ export const createServer = async (
.values({
...input,
userId: userId,
createdAt: new Date().toISOString(),
})
.returning()
.then((value) => value[0]);

View File

@@ -2,21 +2,22 @@ import { db } from "@dokploy/server/db";
import type { users_temp } from "@dokploy/server/db/schema";
import { TRPCError } from "@trpc/server";
import { eq } from "drizzle-orm";
import { findUserById } from "./admin";
export type User = typeof users_temp.$inferSelect;
export const findUserById = async (userId: string) => {
const userR = await db.query.user.findFirst({
where: eq(user.userId, userId),
});
if (!userR) {
throw new TRPCError({
code: "NOT_FOUND",
message: "User not found",
});
}
return user;
};
// export const findUserById = async (userId: string) => {
// // const userR = await db.query.user.findFirst({
// // where: eq(user.userId, userId),
// // });
// // if (!userR) {
// // throw new TRPCError({
// // code: "NOT_FOUND",
// // message: "User not found",
// // });
// // }
// // return user;
// };
export const findUserByAuthId = async (authId: string) => {
const userR = await db.query.user.findFirst({
@@ -46,33 +47,32 @@ export const findUsers = async (adminId: string) => {
return currentUsers;
};
export const addNewProject = async (authId: string, projectId: string) => {
const userR = await findUserByAuthId(authId);
export const addNewProject = async (userId: string, projectId: string) => {
const userR = await findUserById(userId);
await db
.update(user)
.set({
accessedProjects: [...userR.accessedProjects, projectId],
})
.where(eq(user.authId, authId));
// await db
// .update(user)
// .set({
// accessedProjects: [...userR.accessedProjects, projectId],
// })
// .where(eq(user.authId, authId));
};
export const addNewService = async (authId: string, serviceId: string) => {
const userR = await findUserByAuthId(authId);
await db
.update(user)
.set({
accessedServices: [...userR.accessedServices, serviceId],
})
.where(eq(user.authId, authId));
export const addNewService = async (userId: string, serviceId: string) => {
const userR = await findUserById(userId);
// await db
// .update(user)
// .set({
// accessedServices: [...userR.accessedServices, serviceId],
// })
// .where(eq(user.userId, userId));
};
export const canPerformCreationService = async (
userId: string,
projectId: string,
) => {
const { accessedProjects, canCreateServices } =
await findUserByAuthId(userId);
const { accessedProjects, canCreateServices } = await findUserById(userId);
const haveAccessToProject = accessedProjects.includes(projectId);
if (canCreateServices && haveAccessToProject) {
@@ -86,7 +86,7 @@ export const canPerformAccessService = async (
userId: string,
serviceId: string,
) => {
const { accessedServices } = await findUserByAuthId(userId);
const { accessedServices } = await findUserById(userId);
const haveAccessToService = accessedServices.includes(serviceId);
if (haveAccessToService) {
@@ -97,11 +97,10 @@ export const canPerformAccessService = async (
};
export const canPeformDeleteService = async (
authId: string,
userId: string,
serviceId: string,
) => {
const { accessedServices, canDeleteServices } =
await findUserByAuthId(authId);
const { accessedServices, canDeleteServices } = await findUserById(userId);
const haveAccessToService = accessedServices.includes(serviceId);
if (canDeleteServices && haveAccessToService) {
@@ -111,8 +110,8 @@ export const canPeformDeleteService = async (
return false;
};
export const canPerformCreationProject = async (authId: string) => {
const { canCreateProjects } = await findUserByAuthId(authId);
export const canPerformCreationProject = async (userId: string) => {
const { canCreateProjects } = await findUserById(userId);
if (canCreateProjects) {
return true;
@@ -121,8 +120,8 @@ export const canPerformCreationProject = async (authId: string) => {
return false;
};
export const canPerformDeleteProject = async (authId: string) => {
const { canDeleteProjects } = await findUserByAuthId(authId);
export const canPerformDeleteProject = async (userId: string) => {
const { canDeleteProjects } = await findUserById(userId);
if (canDeleteProjects) {
return true;
@@ -132,10 +131,10 @@ export const canPerformDeleteProject = async (authId: string) => {
};
export const canPerformAccessProject = async (
authId: string,
userId: string,
projectId: string,
) => {
const { accessedProjects } = await findUserByAuthId(authId);
const { accessedProjects } = await findUserById(userId);
const haveAccessToProject = accessedProjects.includes(projectId);
@@ -145,26 +144,26 @@ export const canPerformAccessProject = async (
return false;
};
export const canAccessToTraefikFiles = async (authId: string) => {
const { canAccessToTraefikFiles } = await findUserByAuthId(authId);
export const canAccessToTraefikFiles = async (userId: string) => {
const { canAccessToTraefikFiles } = await findUserById(userId);
return canAccessToTraefikFiles;
};
export const checkServiceAccess = async (
authId: string,
userId: string,
serviceId: string,
action = "access" as "access" | "create" | "delete",
) => {
let hasPermission = false;
switch (action) {
case "create":
hasPermission = await canPerformCreationService(authId, serviceId);
hasPermission = await canPerformCreationService(userId, serviceId);
break;
case "access":
hasPermission = await canPerformAccessService(authId, serviceId);
hasPermission = await canPerformAccessService(userId, serviceId);
break;
case "delete":
hasPermission = await canPeformDeleteService(authId, serviceId);
hasPermission = await canPeformDeleteService(userId, serviceId);
break;
default:
hasPermission = false;