skip non user owned collection files during export

This commit is contained in:
Abhinav 2023-11-07 10:15:51 +05:30
parent 740d5e8ef2
commit f6d3a99520
2 changed files with 34 additions and 5 deletions

View file

@ -234,7 +234,18 @@ class ExportService {
try {
const user: User = getData(LS_KEYS.USER);
const files = await getAllLocalFiles();
const userPersonalFiles = getPersonalFiles(files, user);
const collections = await getAllLocalCollections();
const collectionIdToOwnerIDMap = new Map<number, number>(
collections.map((collection) => [
collection.id,
collection.owner.id,
])
);
const userPersonalFiles = getPersonalFiles(
files,
collectionIdToOwnerIDMap,
user
);
const unExportedFiles = getUnExportedFiles(
userPersonalFiles,
@ -347,9 +358,19 @@ class ExportService {
try {
const user: User = getData(LS_KEYS.USER);
const files = mergeMetadata(await getAllLocalFiles());
const personalFiles = getPersonalFiles(files, user);
const collections = await getAllLocalCollections();
const collectionIdToOwnerIDMap = new Map<number, number>(
collections.map((collection) => [
collection.id,
collection.owner.id,
])
);
const personalFiles = getPersonalFiles(
files,
collectionIdToOwnerIDMap,
user
);
const nonEmptyPersonalCollections = getNonEmptyPersonalCollections(
collections,
personalFiles,

View file

@ -823,11 +823,19 @@ export function getLatestVersionFiles(files: EnteFile[]) {
);
}
export function getPersonalFiles(files: EnteFile[], user: User) {
export function getPersonalFiles(
files: EnteFile[],
collectionIdToOwnerIDMap: Map<number, number>,
user: User
) {
if (!user?.id) {
throw Error('user missing');
}
return files.filter((file) => file.ownerID === user.id);
return files.filter(
(file) =>
file.ownerID === user.id &&
collectionIdToOwnerIDMap.get(file.collectionID) === user.id
);
}
export function getIDBasedSortedFiles(files: EnteFile[]) {