Ver Fonte

Merge pull request #1364 from sharelatex/ja-fix-user-stub-owner-imports

Handle UserStubs for project owner

GitOrigin-RevId: ab3d9edf6e44a7867285430c14c73b3e64fd4c04
James Allen há 7 anos atrás
pai
commit
8653a3d9cd

+ 2 - 2
services/web/app/coffee/Features/Compile/CompileManager.coffee

@@ -63,8 +63,8 @@ module.exports = CompileManager =
 			UserGetter.getUser project.owner_ref, {"features":1}, (err, owner)->
 				return callback(error) if error?
 				callback null, {
-					timeout: owner.features?.compileTimeout || Settings.defaultFeatures.compileTimeout
-					compileGroup: owner.features?.compileGroup || Settings.defaultFeatures.compileGroup
+					timeout: owner?.features?.compileTimeout || Settings.defaultFeatures.compileTimeout
+					compileGroup: owner?.features?.compileGroup || Settings.defaultFeatures.compileGroup
 				}
 
 	COMPILE_DELAY: 1 # seconds

+ 2 - 1
services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee

@@ -9,6 +9,7 @@ PublicAccessLevels = require("../Authorization/PublicAccessLevels")
 Errors = require("../Errors/Errors")
 ProjectTokenGenerator = require('./ProjectTokenGenerator')
 ProjectHelper = require('./ProjectHelper')
+settings = require('settings-sharelatex')
 
 module.exports = ProjectDetailsHandler =
 	getDetails: (project_id, callback)->
@@ -23,7 +24,7 @@ module.exports = ProjectDetailsHandler =
 					name : project.name
 					description: project.description
 					compiler: project.compiler
-					features: user.features
+					features: user?.features or settings.defaultFeatures
 
 				if project.overleaf?
 					details.overleaf = project.overleaf

+ 8 - 0
services/web/test/unit/coffee/Project/ProjectDetailsHandlerTests.coffee

@@ -39,6 +39,8 @@ describe 'ProjectDetailsHandler', ->
 				log:->
 				err:->
 			'./ProjectTokenGenerator': @ProjectTokenGenerator = {}
+			'settings-sharelatex': @settings =
+				defaultFeatures: 'default-features'
 
 	describe "getDetails", ->
 
@@ -65,6 +67,12 @@ describe 'ProjectDetailsHandler', ->
 				err.should.eql error
 				done()
 
+		it 'should return the default features if no owner found', (done) ->
+			@UserGetter.getUser.callsArgWith(1, null, null)
+			@handler.getDetails @project_id, (err, details)=>
+				details.features.should.equal @settings.defaultFeatures
+				done()
+
 		it "should return the error", (done)->
 			error = "some error"
 			@ProjectGetter.getProject.callsArgWith(2, error)