Support variables file email attachment (#21613)

<!-- This is an auto-generated description by cubic. -->
<a
href="https://cubic.dev/pr/twentyhq/twenty/pull/21613?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>
<!-- End of auto-generated description by cubic. -->
This commit is contained in:
neo773
2026-06-16 21:41:37 +05:30
committed by GitHub
parent d8d5991977
commit 1ad919955a
15 changed files with 256 additions and 60 deletions
@@ -81,16 +81,15 @@ export class FileService {
async getFileStreamById({
fileId,
workspaceId,
fileFolder,
allowedFileFolders = [FileFolder.Workflow],
}: {
fileId: string;
workspaceId: string;
fileFolder: FileFolder;
allowedFileFolders?: FileFolder[];
}): Promise<{ stream: Readable; mimeType: string } | null> {
const file = await this.fileRepository.findOne(workspaceId, {
where: {
id: fileId,
path: Like(`${fileFolder}/%`),
},
});
@@ -98,6 +97,12 @@ export class FileService {
return null;
}
const [fileFolder] = file.path.split('/');
if (!allowedFileFolders.includes(fileFolder as FileFolder)) {
return null;
}
const application = await this.applicationRepository.findOne({
where: {
id: file.applicationId,
@@ -116,7 +121,7 @@ export class FileService {
try {
const stream = await this.fileStorageService.readFile({
resourcePath: removeFileFolderFromFileEntityPath(file.path),
fileFolder,
fileFolder: fileFolder as FileFolder,
applicationUniversalIdentifier: application.universalIdentifier,
workspaceId,
});