Merge branch 'master' of github.com:sharelatex/web-sharelatex

This commit is contained in:
Henry Oswald 2014-05-16 11:27:09 +01:00
commit 50df82697a
4 changed files with 14 additions and 11 deletions

View file

@ -46,5 +46,6 @@ module.exports = ProjectZipStreamManager =
return callback(err)
path = path.slice(1) if path[0] == "/"
archive.append stream, name: path
stream.on "end", () ->
callback()
async.series jobs, callback

View file

@ -2,7 +2,7 @@ Settings = require('settings-sharelatex')
redis = require('redis')
rclient = redis.createClient(Settings.redis.web.port, Settings.redis.web.host)
rclient.auth(Settings.redis.web.password)
uuid = require("node-uuid")
crypto = require("crypto")
logger = require("logger-sharelatex")
ONE_HOUR_IN_S = 60 * 60
@ -13,7 +13,7 @@ module.exports =
getNewToken: (user_id, callback)->
logger.log user_id:user_id, "generating token for password reset"
token = uuid.v4()
token = crypto.randomBytes(32).toString("hex")
multi = rclient.multi()
multi.set buildKey(token), user_id
multi.expire buildKey(token), ONE_HOUR_IN_S

View file

@ -4,6 +4,7 @@ should = chai.should()
expect = chai.expect
modulePath = "../../../../app/js/Features/Downloads/ProjectZipStreamManager.js"
SandboxedModule = require('sandboxed-module')
EventEmitter = require("events").EventEmitter
describe "ProjectZipStreamManager", ->
beforeEach ->
@ -112,14 +113,16 @@ describe "ProjectZipStreamManager", ->
"/folder/picture.png":
_id: "file-id-2"
@streams =
"file-id-1" : "stream-mock-1"
"file-id-2" : "stream-mock-2"
"file-id-1" : new EventEmitter()
"file-id-2" : new EventEmitter()
@ProjectEntityHandler.getAllFiles = sinon.stub().callsArgWith(1, null, @files)
@archive.append = sinon.stub()
@FileStoreHandler.getFileStream = (project_id, file_id, {}, callback) =>
callback null, @streams[file_id]
sinon.spy @FileStoreHandler, "getFileStream"
@ProjectZipStreamManager.addAllFilesToArchive @project_id, @archive, @callback
for path, stream of @streams
stream.emit "end"
it "should get the files for the project", ->
@ProjectEntityHandler.getAllFiles.calledWith(@project_id).should.equal true

View file

@ -10,7 +10,7 @@ describe "PasswordResetTokenHandler", ->
beforeEach ->
@user_id = "user id here"
@stubbedToken = "dsajdiojlklksda"
@stubbedToken = require("crypto").randomBytes(32)
@settings =
redis:
@ -21,7 +21,6 @@ describe "PasswordResetTokenHandler", ->
del:sinon.stub()
expire:sinon.stub()
exec:sinon.stub()
@uuid = v4 : -> return @stubbedToken
self = @
@PasswordResetTokenHandler = SandboxedModule.require modulePath, requires:
"redis" :
@ -31,16 +30,16 @@ describe "PasswordResetTokenHandler", ->
"settings-sharelatex":@settings
"logger-sharelatex": log:->
"node-uuid":@uuid
"crypto": randomBytes: () => @stubbedToken
describe "getNewToken", ->
it "should set a new token into redis with a ttl", (done)->
@redisMulti.exec.callsArgWith(0)
@PasswordResetTokenHandler.getNewToken @user_id, (err, token)=>
@redisMulti.set "password_token:#{@stubbedToken}", @user_id
@redisMulti.expire "password_token:#{@stubbedToken}", 60 * 60
@PasswordResetTokenHandler.getNewToken @user_id, (err, token) =>
@redisMulti.set.calledWith("password_token:#{@stubbedToken.toString("hex")}", @user_id).should.equal true
@redisMulti.expire.calledWith("password_token:#{@stubbedToken.toString("hex")}", 60 * 60).should.equal true
done()
it "should return if there was an error", (done)->