* move SystemField to features * migrate workflow service * merge two tests for team repository * update imports and migrate team repository * migrate delegation credential repository * migrate credential repository * migrate entityPermissionUtils * migrate hashedLink service and repository * migrate membership service * update imports * remove file * migrate buildEventUrlFromBooking * migrate getAllUserBookings to features * update imports * update organizationMock * migrate slots * migrate date-ranges to schedules dir * migrate getAggregatedAvailability * fix * refactor * migrate useCreateEventType hook to features * migrate assignValueToUser * migrate validateUsername to auth features * migrate system field back to lib * migrate getLabelValueMapFromResponses back to lib * update imports * use relative path * fix type checks * fix * fix * fix tests * update gh codeowners * fix * fix
36 lines
807 B
TypeScript
36 lines
807 B
TypeScript
import { canCreateEntity, canEditEntity } from "@calcom/features/pbac/lib/entityPermissionUtils.server";
|
|
import prisma from "@calcom/prisma";
|
|
import type { App_RoutingForms_Form, User } from "@calcom/prisma/client";
|
|
|
|
export async function isFormCreateEditAllowed({
|
|
formId,
|
|
userId,
|
|
/**
|
|
* Valid when a new form is being created for a team
|
|
*/
|
|
targetTeamId,
|
|
}: {
|
|
userId: User["id"];
|
|
formId: App_RoutingForms_Form["id"];
|
|
targetTeamId: App_RoutingForms_Form["teamId"] | null;
|
|
}) {
|
|
const form = await prisma.app_RoutingForms_Form.findUnique({
|
|
where: {
|
|
id: formId,
|
|
},
|
|
select: {
|
|
userId: true,
|
|
teamId: true,
|
|
},
|
|
});
|
|
|
|
if (!form) {
|
|
return await canCreateEntity({
|
|
targetTeamId,
|
|
userId,
|
|
});
|
|
}
|
|
|
|
return await canEditEntity(form, userId);
|
|
}
|