fix(server,web): correctly remove metadata from shared links (#4464)

* wip: strip metadata

* fix: authenticate time buckets

* hide detail panel

* fix tests

* fix lint

* add e2e tests

* chore: open api

* fix web compilation error

* feat: test with asset with gps position

* fix: only import fs.promises.cp

* fix: cleanup mapasset

* fix: format

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
Jonathan Jogenfors
2023-10-14 03:46:30 +02:00
committed by GitHub
parent 4a9f58bf9b
commit dadcf49eca
39 changed files with 332 additions and 150 deletions

View File

@@ -48,7 +48,7 @@ export const authStub = {
isPublicUser: false,
isAllowUpload: true,
isAllowDownload: true,
isShowExif: true,
isShowMetadata: true,
accessTokenId: 'token-id',
externalPath: null,
}),
@@ -59,7 +59,7 @@ export const authStub = {
isPublicUser: false,
isAllowUpload: true,
isAllowDownload: true,
isShowExif: true,
isShowMetadata: true,
accessTokenId: 'token-id',
externalPath: null,
}),
@@ -70,7 +70,7 @@ export const authStub = {
isPublicUser: false,
isAllowUpload: true,
isAllowDownload: true,
isShowExif: true,
isShowMetadata: true,
accessTokenId: 'token-id',
externalPath: '/data/user1',
}),
@@ -81,7 +81,7 @@ export const authStub = {
isAllowUpload: true,
isAllowDownload: true,
isPublicUser: true,
isShowExif: true,
isShowMetadata: true,
sharedLinkId: '123',
}),
adminSharedLinkNoExif: Object.freeze<AuthUserDto>({
@@ -91,7 +91,7 @@ export const authStub = {
isAllowUpload: true,
isAllowDownload: true,
isPublicUser: true,
isShowExif: false,
isShowMetadata: false,
sharedLinkId: '123',
}),
readonlySharedLink: Object.freeze<AuthUserDto>({
@@ -101,7 +101,7 @@ export const authStub = {
isAllowUpload: false,
isAllowDownload: false,
isPublicUser: true,
isShowExif: true,
isShowMetadata: true,
sharedLinkId: '123',
accessTokenId: 'token-id',
}),

View File

@@ -71,8 +71,20 @@ const assetResponse: AssetResponseDto = {
checksum: 'ZmlsZSBoYXNo',
isTrashed: false,
libraryId: 'library-id',
hasMetadata: true,
};
const assetResponseWithoutMetadata = {
id: 'id_1',
type: AssetType.VIDEO,
resized: false,
thumbhash: null,
localDateTime: today,
duration: '0:00:00.00000',
livePhotoVideoId: null,
hasMetadata: false,
} as AssetResponseDto;
const albumResponse: AlbumResponseDto = {
albumName: 'Test Album',
description: '',
@@ -253,7 +265,7 @@ export const sharedLinkResponseStub = {
expiresAt: tomorrow,
id: '123',
key: sharedLinkBytes.toString('base64url'),
showExif: true,
showMetadata: true,
type: SharedLinkType.ALBUM,
userId: 'admin_id',
}),
@@ -267,7 +279,7 @@ export const sharedLinkResponseStub = {
expiresAt: yesterday,
id: '123',
key: sharedLinkBytes.toString('base64url'),
showExif: true,
showMetadata: true,
type: SharedLinkType.ALBUM,
userId: 'admin_id',
}),
@@ -281,11 +293,11 @@ export const sharedLinkResponseStub = {
description: null,
allowUpload: false,
allowDownload: false,
showExif: true,
showMetadata: true,
album: albumResponse,
assets: [assetResponse],
}),
readonlyNoExif: Object.freeze<SharedLinkResponseDto>({
readonlyNoMetadata: Object.freeze<SharedLinkResponseDto>({
id: '123',
userId: 'admin_id',
key: sharedLinkBytes.toString('base64url'),
@@ -295,8 +307,8 @@ export const sharedLinkResponseStub = {
description: null,
allowUpload: false,
allowDownload: false,
showExif: false,
showMetadata: false,
album: { ...albumResponse, startDate: assetResponse.fileCreatedAt, endDate: assetResponse.fileCreatedAt },
assets: [{ ...assetResponse, exifInfo: undefined }],
assets: [{ ...assetResponseWithoutMetadata, exifInfo: undefined }],
}),
};