avatars.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { Meteor } from 'meteor/meteor';
  2. import { FilesCollection } from 'meteor/ostrio:files';
  3. import { createBucket } from './lib/grid/createBucket';
  4. import { createOnAfterUpload } from './lib/fsHooks/createOnAfterUpload';
  5. import { createInterceptDownload } from './lib/fsHooks/createInterceptDownload';
  6. import { createOnAfterRemove } from './lib/fsHooks/createOnAfterRemove';
  7. const avatarsBucket = createBucket('avatars');
  8. export const Avatars = new FilesCollection({
  9. debug: false, // Change to `true` for debugging
  10. collectionName: 'avatars',
  11. allowClientCode: false,
  12. onBeforeUpload(file) {
  13. if (file.size <= 72000 && file.isImage) return true;
  14. return 'Please upload image, with size equal or less than 72KB';
  15. },
  16. onAfterUpload: createOnAfterUpload(avatarsBucket),
  17. interceptDownload: createInterceptDownload(avatarsBucket),
  18. onAfterRemove: createOnAfterRemove(avatarsBucket),
  19. });
  20. function isOwner(userId, doc) {
  21. return userId && userId === doc.userId;
  22. }
  23. Avatars.allow({
  24. insert: isOwner,
  25. update: isOwner,
  26. remove: isOwner,
  27. fetch: ['userId'],
  28. });
  29. export default Avatars;