avatars.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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. let avatarsBucket;
  8. if (Meteor.isServer) {
  9. avatarsBucket = createBucket('avatars');
  10. }
  11. Avatars = new FilesCollection({
  12. debug: false, // Change to `true` for debugging
  13. collectionName: 'avatars',
  14. allowClientCode: true,
  15. onBeforeUpload(file) {
  16. if (file.size <= 72000 && file.isImage) return true;
  17. return 'Please upload image, with size equal or less than 72KB';
  18. },
  19. onAfterUpload: createOnAfterUpload(avatarsBucket),
  20. interceptDownload: createInterceptDownload(avatarsBucket),
  21. onAfterRemove: createOnAfterRemove(avatarsBucket),
  22. });
  23. function isOwner(userId, doc) {
  24. return userId && userId === doc.userId;
  25. }
  26. if (Meteor.isServer) {
  27. Avatars.allow({
  28. insert: isOwner,
  29. update: isOwner,
  30. remove: isOwner,
  31. fetch: ['userId'],
  32. });
  33. }
  34. export default Avatars;