feat: private content (#1137)
* save images as private and serve via signed url from images.info api * download private images to directory on export * fix lint errors * private s3 default, AWS.s3 module level scope, default s3 url expiry * combine regex to one, and only replace when there are matches * fix lint * code not needed anymore, remove * updates after pulling master * revert the uploadToS3FromUrl url return * use model gettr to compact code, rename to attachments api * basic checking of document read permission to allow attachment viewing * fix: Continue to upload avatars as public fix: Allow redirect for non-private attachments * add support for publicly shared documents * catch errors which crash the app during zip export and user creation * add tests * enable AWS signature v4 for s3 * switch to use factories to build models for testing * add isDocker flag for local serving of attachment redirect url * fix redirect tests Co-authored-by: Tom Moor <tom.moor@gmail.com>
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
// @flow
|
||||
import { Share, Team, User, Event, Document, Collection } from '../models';
|
||||
import {
|
||||
Share,
|
||||
Team,
|
||||
User,
|
||||
Event,
|
||||
Document,
|
||||
Collection,
|
||||
Attachment,
|
||||
} from '../models';
|
||||
import uuid from 'uuid';
|
||||
|
||||
let count = 0;
|
||||
@@ -104,3 +112,38 @@ export async function buildDocument(overrides: Object = {}) {
|
||||
...overrides,
|
||||
});
|
||||
}
|
||||
|
||||
export async function buildAttachment(overrides: Object = {}) {
|
||||
count++;
|
||||
|
||||
if (!overrides.teamId) {
|
||||
const team = await buildTeam();
|
||||
overrides.teamId = team.id;
|
||||
}
|
||||
|
||||
if (!overrides.userId) {
|
||||
const user = await buildUser();
|
||||
overrides.userId = user.id;
|
||||
}
|
||||
|
||||
if (!overrides.collectionId) {
|
||||
const collection = await buildCollection(overrides);
|
||||
overrides.collectionId = collection.id;
|
||||
}
|
||||
|
||||
if (!overrides.documentId) {
|
||||
const document = await buildDocument(overrides);
|
||||
overrides.documentId = document.id;
|
||||
}
|
||||
|
||||
return Attachment.create({
|
||||
key: `uploads/key/to/file ${count}.png`,
|
||||
url: `https://redirect.url.com/uploads/key/to/file ${count}.png`,
|
||||
contentType: 'image/png',
|
||||
size: 100,
|
||||
acl: 'public-read',
|
||||
createdAt: new Date('2018-01-02T00:00:00.000Z'),
|
||||
updatedAt: new Date('2018-01-02T00:00:00.000Z'),
|
||||
...overrides,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user