refactor: prevents mixed server/clients imports (#21499)
This commit is contained in:
1 parent
8511494d68
commit
bda963b851
13 files changed
+32
-31
No files matched your search
@@ -3,7 +3,7 @@ import type { NextApiRequest, NextApiResponse } from "next";
|
||||
import { getSession } from "next-auth/react";
|
||||
|
||||
import { sanitizeValue } from "@calcom/lib/csvUtils";
|
||||
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils";
|
||||
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import prisma from "@calcom/prisma";
|
||||
|
||||
import { getSerializableForm } from "../../lib/getSerializableForm";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { App_RoutingForms_Form } from "@prisma/client";
|
||||
import type { z } from "zod";
|
||||
|
||||
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils";
|
||||
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { RoutingFormSettings } from "@calcom/prisma/zod-utils";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { App_RoutingForms_Form, User } from "@prisma/client";
|
||||
|
||||
import { canCreateEntity, canEditEntity } from "@calcom/lib/entityPermissionUtils";
|
||||
import { canCreateEntity, canEditEntity } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import prisma from "@calcom/prisma";
|
||||
|
||||
export async function isFormCreateEditAllowed({
|
||||
|
||||
@@ -12,7 +12,7 @@ import { Toaster } from "sonner";
|
||||
import type { z } from "zod";
|
||||
|
||||
import { useOrgBranding } from "@calcom/features/ee/organizations/context/provider";
|
||||
import { areTheySiblingEntitites } from "@calcom/lib/entityPermissionUtils";
|
||||
import { areTheySiblingEntities } from "@calcom/lib/entityPermissionUtils.shared";
|
||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
import { buildEmptyQueryValue, raqbQueryValueUtils } from "@calcom/lib/raqb/raqbUtils";
|
||||
import { SchedulingType } from "@calcom/prisma/client";
|
||||
@@ -161,7 +161,7 @@ const buildEventsData = ({
|
||||
}
|
||||
>();
|
||||
eventTypesByGroup?.eventTypeGroups.forEach((group) => {
|
||||
const eventTypeValidInContext = areTheySiblingEntitites({
|
||||
const eventTypeValidInContext = areTheySiblingEntities({
|
||||
entity1: {
|
||||
teamId: group.teamId ?? null,
|
||||
// group doesn't have userId. The query ensures that it belongs to the user only, if teamId isn't set. So, I am manually setting it to the form userId
|
||||
@@ -1164,7 +1164,7 @@ const Routes = ({
|
||||
const availableRouters =
|
||||
allForms?.filtered
|
||||
.filter(({ form: router }) => {
|
||||
const routerValidInContext = areTheySiblingEntitites({
|
||||
const routerValidInContext = areTheySiblingEntities({
|
||||
entity1: {
|
||||
teamId: router.teamId ?? null,
|
||||
// group doesn't have userId. The query ensures that it belongs to the user only, if teamId isn't set. So, I am manually setting it to the form userId
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils";
|
||||
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import type { PrismaClient } from "@calcom/prisma";
|
||||
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { App_RoutingForms_Form } from "@prisma/client";
|
||||
import { Prisma } from "@prisma/client";
|
||||
|
||||
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils";
|
||||
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import type { PrismaClient } from "@calcom/prisma";
|
||||
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils";
|
||||
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import type { PrismaClient } from "@calcom/prisma";
|
||||
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { z } from "zod";
|
||||
|
||||
import { hasFilter } from "@calcom/features/filters/lib/hasFilter";
|
||||
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils";
|
||||
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import type { PrismaClient } from "@calcom/prisma";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { z } from "zod";
|
||||
|
||||
import { canAccessEntity } from "@calcom/lib/entityPermissionUtils";
|
||||
import { canAccessEntity } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import { getTranslation } from "@calcom/lib/server/i18n";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
|
||||
|
||||
@@ -140,21 +140,3 @@ export const entityPrismaWhereClause = ({ userId }: { userId: number }) => ({
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
/**
|
||||
* It returns true if the two entities are created for the same team or same user.
|
||||
*/
|
||||
export const areTheySiblingEntitites = ({
|
||||
entity1,
|
||||
entity2,
|
||||
}: {
|
||||
entity1: { teamId: number | null; userId: number | null };
|
||||
entity2: { teamId: number | null; userId: number | null };
|
||||
}) => {
|
||||
if (entity1.teamId) {
|
||||
return entity1.teamId === entity2.teamId;
|
||||
}
|
||||
// If entity doesn't belong to a team, then target shouldn't be a team.
|
||||
// Also check for `userId` now.
|
||||
return !entity2.teamId && entity1.userId === entity2.userId;
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
// Pure/shared entity permission utilities for use in both client and server environments
|
||||
|
||||
/**
|
||||
* It returns true if the two entities are created for the same team or same user.
|
||||
*/
|
||||
export const areTheySiblingEntities = ({
|
||||
entity1,
|
||||
entity2,
|
||||
}: {
|
||||
entity1: { teamId: number | null; userId: number | null };
|
||||
entity2: { teamId: number | null; userId: number | null };
|
||||
}) => {
|
||||
if (entity1.teamId) {
|
||||
return entity1.teamId === entity2.teamId;
|
||||
}
|
||||
// If entity doesn't belong to a team, then target shouldn't be a team.
|
||||
// Also check for `userId` now.
|
||||
return !entity2.teamId && entity1.userId === entity2.userId;
|
||||
};
|
||||
@@ -1,5 +1,5 @@
|
||||
import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage";
|
||||
import { withRoleCanCreateEntity } from "@calcom/lib/entityPermissionUtils";
|
||||
import { withRoleCanCreateEntity } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import { getUserAvatarUrl } from "@calcom/lib/getAvatarUrl";
|
||||
import type { PrismaClient } from "@calcom/prisma";
|
||||
import { teamMetadataSchema } from "@calcom/prisma/zod-utils";
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ import type { NextApiResponse } from "next";
|
||||
import { enrichFormWithMigrationData } from "@calcom/app-store/routing-forms/enrichFormWithMigrationData";
|
||||
import { getUrlSearchParamsToForwardForTestPreview } from "@calcom/app-store/routing-forms/pages/routing-link/getUrlSearchParamsToForward";
|
||||
import { enrichHostsWithDelegationCredentials } from "@calcom/lib/delegationCredential/server";
|
||||
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils";
|
||||
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import { fromEntriesWithDuplicateKeys } from "@calcom/lib/fromEntriesWithDuplicateKeys";
|
||||
import { findTeamMembersMatchingAttributeLogic } from "@calcom/lib/raqb/findTeamMembersMatchingAttributeLogic";
|
||||
import { getOrderedListOfLuckyUsers } from "@calcom/lib/server/getLuckyUser";
|
||||
|
||||
Reference in new issue
Block a user