mirror of
https://github.com/documenso/documenso.git
synced 2026-07-27 10:25:00 +10:00
fix: block invisible and control characters in folder names
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import { ZFolderNameSchema } from '@documenso/lib/utils/folder-name';
|
||||||
import { trpc } from '@documenso/trpc/react';
|
import { trpc } from '@documenso/trpc/react';
|
||||||
import { Button } from '@documenso/ui/primitives/button';
|
import { Button } from '@documenso/ui/primitives/button';
|
||||||
import {
|
import {
|
||||||
@@ -23,7 +24,7 @@ import { useParams } from 'react-router';
|
|||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
|
|
||||||
const ZCreateFolderFormSchema = z.object({
|
const ZCreateFolderFormSchema = z.object({
|
||||||
name: z.string().min(1, { message: 'Folder name is required' }),
|
name: ZFolderNameSchema,
|
||||||
});
|
});
|
||||||
|
|
||||||
type TCreateFolderFormSchema = z.infer<typeof ZCreateFolderFormSchema>;
|
type TCreateFolderFormSchema = z.infer<typeof ZCreateFolderFormSchema>;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error';
|
import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error';
|
||||||
import { DocumentVisibility } from '@documenso/lib/types/document-visibility';
|
import { DocumentVisibility } from '@documenso/lib/types/document-visibility';
|
||||||
|
import { ZFolderNameSchema } from '@documenso/lib/utils/folder-name';
|
||||||
import { trpc } from '@documenso/trpc/react';
|
import { trpc } from '@documenso/trpc/react';
|
||||||
import type { TFolderWithSubfolders } from '@documenso/trpc/server/folder-router/schema';
|
import type { TFolderWithSubfolders } from '@documenso/trpc/server/folder-router/schema';
|
||||||
import { Button } from '@documenso/ui/primitives/button';
|
import { Button } from '@documenso/ui/primitives/button';
|
||||||
@@ -32,7 +33,7 @@ export type FolderUpdateDialogProps = {
|
|||||||
} & Omit<DialogPrimitive.DialogProps, 'children'>;
|
} & Omit<DialogPrimitive.DialogProps, 'children'>;
|
||||||
|
|
||||||
export const ZUpdateFolderFormSchema = z.object({
|
export const ZUpdateFolderFormSchema = z.object({
|
||||||
name: z.string().min(1),
|
name: ZFolderNameSchema,
|
||||||
visibility: z.nativeEnum(DocumentVisibility).optional(),
|
visibility: z.nativeEnum(DocumentVisibility).optional(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { ZFolderTypeSchema } from '@documenso/lib/types/folder-type';
|
import { ZFolderTypeSchema } from '@documenso/lib/types/folder-type';
|
||||||
import { ZFindResultResponse, ZFindSearchParamsSchema } from '@documenso/lib/types/search-params';
|
import { ZFindResultResponse, ZFindSearchParamsSchema } from '@documenso/lib/types/search-params';
|
||||||
|
import { ZFolderNameSchema } from '@documenso/lib/utils/folder-name';
|
||||||
import { DocumentVisibility } from '@documenso/prisma/generated/types';
|
import { DocumentVisibility } from '@documenso/prisma/generated/types';
|
||||||
import FolderSchema from '@documenso/prisma/generated/zod/modelSchema/FolderSchema';
|
import FolderSchema from '@documenso/prisma/generated/zod/modelSchema/FolderSchema';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
@@ -42,7 +43,7 @@ const ZFolderParentIdSchema = z
|
|||||||
.describe('The folder ID to place this folder within. Leave empty to place folder at the root level.');
|
.describe('The folder ID to place this folder within. Leave empty to place folder at the root level.');
|
||||||
|
|
||||||
export const ZCreateFolderRequestSchema = z.object({
|
export const ZCreateFolderRequestSchema = z.object({
|
||||||
name: z.string(),
|
name: ZFolderNameSchema,
|
||||||
parentId: ZFolderParentIdSchema.optional(),
|
parentId: ZFolderParentIdSchema.optional(),
|
||||||
type: ZFolderTypeSchema.optional(),
|
type: ZFolderTypeSchema.optional(),
|
||||||
});
|
});
|
||||||
@@ -52,7 +53,7 @@ export const ZCreateFolderResponseSchema = ZFolderSchema;
|
|||||||
export const ZUpdateFolderRequestSchema = z.object({
|
export const ZUpdateFolderRequestSchema = z.object({
|
||||||
folderId: z.string().describe('The ID of the folder to update'),
|
folderId: z.string().describe('The ID of the folder to update'),
|
||||||
data: z.object({
|
data: z.object({
|
||||||
name: z.string().optional().describe('The name of the folder'),
|
name: ZFolderNameSchema.optional().describe('The name of the folder'),
|
||||||
parentId: ZFolderParentIdSchema.optional().nullable(),
|
parentId: ZFolderParentIdSchema.optional().nullable(),
|
||||||
visibility: z.nativeEnum(DocumentVisibility).optional().describe('The visibility of the folder'),
|
visibility: z.nativeEnum(DocumentVisibility).optional().describe('The visibility of the folder'),
|
||||||
pinned: z.boolean().optional().describe('Whether the folder should be pinned'),
|
pinned: z.boolean().optional().describe('Whether the folder should be pinned'),
|
||||||
|
|||||||
Reference in New Issue
Block a user