     start: ->
       self = @
       if @config.onBeforeUpload and _.isFunction @config.onBeforeUpload
-        isUploadAllowed = @config.onBeforeUpload.call @result, @fileData
+        isUploadAllowed = @config.onBeforeUpload.call _.extend(@result, @collection.getUser()), @fileData
         if isUploadAllowed isnt true
           return @end new Meteor.Error(403, if _.isString(isUploadAllowed) then isUploadAllowed else 'config.onBeforeUpload() returned false')
 
       if @collection.onBeforeUpload and _.isFunction @collection.onBeforeUpload
-        isUploadAllowed = @collection.onBeforeUpload.call @result, @fileData
+        isUploadAllowed = @collection.onBeforeUpload.call _.extend(@result, @collection.getUser()), @fileData
         if isUploadAllowed isnt true
           return @end new Meteor.Error(403, if _.isString(isUploadAllowed) then isUploadAllowed else 'collection.onBeforeUpload() returned false')
 

        console.info "[FilesCollection] [Write Method] Got ##{opts.chunkId}/#{opts.fileLength} chunks, dst: #{opts.file.name or opts.file.fileName}" if self.debug

        if self.onBeforeUpload and _.isFunction self.onBeforeUpload
          isUploadAllowed = self.onBeforeUpload.call {file: opts.file}, opts.file
          if isUploadAllowed isnt true
            throw new Meteor.Error(403, if _.isString(isUploadAllowed) then isUploadAllowed else '@onBeforeUpload() returned false')


      delete @integrityCheck
      delete @downloadCallback
      delete @interceptDownload
      delete @onBeforeRemove

      if @protected
        if not cookie.has('meteor_login_token') and Meteor._localStorage.getItem('Meteor.loginToken')
          cookie.set 'meteor_login_token', Meteor._localStorage.getItem('Meteor.loginToken'), null, '/'
