refactor: update role and validation handling across multiple pages

This commit is contained in:
Mauricio Siu
2025-02-16 03:06:22 -06:00
parent e7db0ccb70
commit 27736c7c97
16 changed files with 58 additions and 58 deletions

View File

@@ -58,7 +58,7 @@ export const AddUser = () => {
const onSubmit = async (data: AddUser) => { const onSubmit = async (data: AddUser) => {
const result = await authClient.organization.inviteMember({ const result = await authClient.organization.inviteMember({
email: data.email.toLowerCase(), email: data.email.toLowerCase(),
role: "user", role: "member",
organizationId: activeOrganization?.id, organizationId: activeOrganization?.id,
}); });
console.log(result); console.log(result);

View File

@@ -674,8 +674,8 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });

View File

@@ -24,7 +24,7 @@ export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>, ctx: GetServerSidePropsContext<{ serviceId: string }>,
) { ) {
const { req, res } = ctx; const { req, res } = ctx;
const { user, session } = await validateRequest(req, res); const { user, session } = await validateRequest(req);
if (!user || user.role === "member") { if (!user || user.role === "member") {
return { return {
redirect: { redirect: {
@@ -40,8 +40,8 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });

View File

@@ -33,7 +33,7 @@ export async function getServerSideProps(
}, },
}; };
} }
const { user, session } = await validateRequest(ctx.req, ctx.res); const { user, session } = await validateRequest(ctx.req);
if (!user || user.role === "member") { if (!user || user.role === "member") {
return { return {
redirect: { redirect: {
@@ -48,8 +48,8 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });

View File

@@ -25,7 +25,7 @@ export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>, ctx: GetServerSidePropsContext<{ serviceId: string }>,
) { ) {
const { req, res } = ctx; const { req, res } = ctx;
const { user, session } = await validateRequest(req, res); const { user, session } = await validateRequest(req);
if (!user || user.role === "member") { if (!user || user.role === "member") {
return { return {
redirect: { redirect: {
@@ -41,8 +41,8 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });

View File

@@ -24,7 +24,7 @@ Page.getLayout = (page: ReactElement) => {
export async function getServerSideProps( export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>, ctx: GetServerSidePropsContext<{ serviceId: string }>,
) { ) {
const { user, session } = await validateRequest(ctx.req, ctx.res); const { user, session } = await validateRequest(ctx.req);
if (!user) { if (!user) {
return { return {
redirect: { redirect: {
@@ -40,8 +40,8 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });
@@ -49,14 +49,12 @@ export async function getServerSideProps(
try { try {
await helpers.project.all.prefetch(); await helpers.project.all.prefetch();
await helpers.settings.isCloud.prefetch(); await helpers.settings.isCloud.prefetch();
const auth = await helpers.auth.get.fetch(); if (user.role === "member") {
const userR = await helpers.user.get.fetch({
if (auth.role === "member") { userId: user.id,
const user = await helpers.user.byAuthId.fetch({
authId: auth.id,
}); });
if (!user.canAccessToGitProviders) { if (!userR.canAccessToGitProviders) {
return { return {
redirect: { redirect: {
permanent: true, permanent: true,

View File

@@ -181,7 +181,7 @@ export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>, ctx: GetServerSidePropsContext<{ serviceId: string }>,
) { ) {
const { req, res } = ctx; const { req, res } = ctx;
const { user, session } = await validateRequest(ctx.req, ctx.res); const { user, session } = await validateRequest(ctx.req);
if (!user) { if (!user) {
return { return {
redirect: { redirect: {
@@ -205,8 +205,8 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });

View File

@@ -25,7 +25,7 @@ export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>, ctx: GetServerSidePropsContext<{ serviceId: string }>,
) { ) {
const { req, res } = ctx; const { req, res } = ctx;
const { user, session } = await validateRequest(req, res); const { user, session } = await validateRequest(req);
if (!user || user.role === "member") { if (!user || user.role === "member") {
return { return {
redirect: { redirect: {
@@ -41,8 +41,8 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });

View File

@@ -14,12 +14,12 @@ import superjson from "superjson";
const Page = () => { const Page = () => {
const { data } = api.auth.get.useQuery(); const { data } = api.auth.get.useQuery();
const { data: user } = api.user.byAuthId.useQuery( const { data: user } = api.user.get.useQuery(
{ {
authId: data?.id || "", authId: data?.id || "",
}, },
{ {
enabled: !!data?.id && data?.role === "user", enabled: !!data?.id && data?.role === "member",
}, },
); );
@@ -46,7 +46,7 @@ export async function getServerSideProps(
) { ) {
const { req, res } = ctx; const { req, res } = ctx;
const locale = getLocale(req.cookies); const locale = getLocale(req.cookies);
const { user, session } = await validateRequest(req, res); const { user, session } = await validateRequest(req);
const helpers = createServerSideHelpers({ const helpers = createServerSideHelpers({
router: appRouter, router: appRouter,
@@ -54,18 +54,21 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });
await helpers.settings.isCloud.prefetch(); await helpers.settings.isCloud.prefetch();
await helpers.auth.get.prefetch(); await helpers.auth.get.prefetch();
if (user?.role === "user") { if (user?.role === "member") {
await helpers.user.byAuthId.prefetch({ // const userR = await helpers.user.get.fetch({
authId: user.authId, // userId: user.id,
}); // });
// await helpers.user.byAuthId.prefetch({
// authId: user.authId,
// });
} }
if (!user) { if (!user) {

View File

@@ -25,7 +25,7 @@ export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>, ctx: GetServerSidePropsContext<{ serviceId: string }>,
) { ) {
const { req, res } = ctx; const { req, res } = ctx;
const { user, session } = await validateRequest(req, res); const { user, session } = await validateRequest(req);
if (!user || user.role === "member") { if (!user || user.role === "member") {
return { return {
redirect: { redirect: {
@@ -40,8 +40,8 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });

View File

@@ -98,7 +98,7 @@ export async function getServerSideProps(
}, },
}; };
} }
const { user, session } = await validateRequest(ctx.req, ctx.res); const { user, session } = await validateRequest(ctx.req);
if (!user) { if (!user) {
return { return {
redirect: { redirect: {
@@ -122,8 +122,8 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });

View File

@@ -27,7 +27,7 @@ export async function getServerSideProps(
) { ) {
const { req, res } = ctx; const { req, res } = ctx;
const locale = await getLocale(req.cookies); const locale = await getLocale(req.cookies);
const { user, session } = await validateRequest(req, res); const { user, session } = await validateRequest(req);
if (!user) { if (!user) {
return { return {
redirect: { redirect: {
@@ -51,8 +51,8 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });

View File

@@ -24,7 +24,7 @@ Page.getLayout = (page: ReactElement) => {
export async function getServerSideProps( export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>, ctx: GetServerSidePropsContext<{ serviceId: string }>,
) { ) {
const { user, session } = await validateRequest(ctx.req, ctx.res); const { user, session } = await validateRequest(ctx.req);
if (!user) { if (!user) {
return { return {
redirect: { redirect: {
@@ -40,23 +40,22 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });
try { try {
await helpers.project.all.prefetch(); await helpers.project.all.prefetch();
const auth = await helpers.auth.get.fetch();
await helpers.settings.isCloud.prefetch(); await helpers.settings.isCloud.prefetch();
if (auth.role === "member") { if (user.role === "member") {
const user = await helpers.user.byAuthId.fetch({ const userR = await helpers.user.get.fetch({
authId: auth.id, userId: user.id,
}); });
if (!user.canAccessToSSHKeys) { if (!userR.canAccessToSSHKeys) {
return { return {
redirect: { redirect: {
permanent: true, permanent: true,

View File

@@ -25,7 +25,7 @@ export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>, ctx: GetServerSidePropsContext<{ serviceId: string }>,
) { ) {
const { req, res } = ctx; const { req, res } = ctx;
const { user, session } = await validateRequest(req, res); const { user, session } = await validateRequest(req);
if (!user || user.role === "member") { if (!user || user.role === "member") {
return { return {
redirect: { redirect: {
@@ -41,8 +41,8 @@ export async function getServerSideProps(
req: req as any, req: req as any,
res: res as any, res: res as any,
db: null as any, db: null as any,
session: session, session: session as any,
user: user, user: user as any,
}, },
transformer: superjson, transformer: superjson,
}); });

View File

@@ -274,7 +274,7 @@ Register.getLayout = (page: ReactElement) => {
}; };
export async function getServerSideProps(context: GetServerSidePropsContext) { export async function getServerSideProps(context: GetServerSidePropsContext) {
if (IS_CLOUD) { if (IS_CLOUD) {
const { user } = await validateRequest(context.req, context.res); const { user } = await validateRequest(context.req);
if (user) { if (user) {
return { return {

View File

@@ -1,9 +1,9 @@
import type http from "node:http"; import type http from "node:http";
import { validateRequest } from "@dokploy/server/index";
import { applyWSSHandler } from "@trpc/server/adapters/ws"; import { applyWSSHandler } from "@trpc/server/adapters/ws";
import { WebSocketServer } from "ws"; import { WebSocketServer } from "ws";
import { appRouter } from "../api/root"; import { appRouter } from "../api/root";
import { createTRPCContext } from "../api/trpc"; import { createTRPCContext } from "../api/trpc";
import { validateRequest } from "@dokploy/server/index";
export const setupDrawerLogsWebSocketServer = ( export const setupDrawerLogsWebSocketServer = (
server: http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>, server: http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>,