Fix sending too much and not enough data on arena sessions
This commit is contained in:
parent
e05536e1e4
commit
bfa49cbbc6
3 changed files with 4 additions and 6 deletions
|
@ -76,7 +76,7 @@ module.exports = class LevelLoader extends CocoClass
|
||||||
else
|
else
|
||||||
@level = @supermodel.loadModel(@level, 'level').model
|
@level = @supermodel.loadModel(@level, 'level').model
|
||||||
@listenToOnce @level, 'sync', @onLevelLoaded
|
@listenToOnce @level, 'sync', @onLevelLoaded
|
||||||
|
|
||||||
reportLoadError: ->
|
reportLoadError: ->
|
||||||
window.tracker?.trackEvent 'LevelLoadError',
|
window.tracker?.trackEvent 'LevelLoadError',
|
||||||
category: 'Error',
|
category: 'Error',
|
||||||
|
@ -154,7 +154,7 @@ module.exports = class LevelLoader extends CocoClass
|
||||||
|
|
||||||
session = new LevelSession().setURL url
|
session = new LevelSession().setURL url
|
||||||
if @headless and not @level.isType('web-dev')
|
if @headless and not @level.isType('web-dev')
|
||||||
session.project = ['creator', 'team', 'heroConfig', 'codeLanguage', 'submittedCodeLanguage', 'state', 'submittedCode']
|
session.project = ['creator', 'team', 'heroConfig', 'codeLanguage', 'submittedCodeLanguage', 'state', 'submittedCode', 'submitted']
|
||||||
@sessionResource = @supermodel.loadModel(session, 'level_session', {cache: false})
|
@sessionResource = @supermodel.loadModel(session, 'level_session', {cache: false})
|
||||||
@session = @sessionResource.model
|
@session = @sessionResource.model
|
||||||
if @opponentSessionID
|
if @opponentSessionID
|
||||||
|
|
|
@ -19,14 +19,13 @@ class LevelSessionHandler extends Handler
|
||||||
submittedCode = document.submittedCode ? {}
|
submittedCode = document.submittedCode ? {}
|
||||||
unless req.user?.isAdmin() or
|
unless req.user?.isAdmin() or
|
||||||
req.user?.id is document.creator or
|
req.user?.id is document.creator or
|
||||||
('employer' in (req.user?.get('permissions') ? [])) or
|
|
||||||
not document.submittedCode # TODO: only allow leaderboard access to non-top-5 solutions
|
not document.submittedCode # TODO: only allow leaderboard access to non-top-5 solutions
|
||||||
document = _.omit document, @privateProperties
|
document = _.omit document, @privateProperties
|
||||||
if req.query.interpret
|
if req.query.interpret
|
||||||
plan = submittedCode[if document.team is 'humans' then 'hero-placeholder' else 'hero-placeholder-1']?.plan ? ''
|
plan = submittedCode[if document.team is 'humans' then 'hero-placeholder' else 'hero-placeholder-1']?.plan ? ''
|
||||||
plan = LZString.compressToUTF16 plan
|
plan = LZString.compressToUTF16 plan
|
||||||
document.interpret = plan
|
document.interpret = plan
|
||||||
document.code = submittedCode
|
document.code = {'hero-placeholder': {plan: ''}, 'hero-placeholder-1': {plan: ''}}
|
||||||
return document
|
return document
|
||||||
|
|
||||||
getActiveSessions: (req, res) ->
|
getActiveSessions: (req, res) ->
|
||||||
|
@ -58,7 +57,6 @@ class LevelSessionHandler extends Handler
|
||||||
hasAccessToDocument: (req, document, method=null) ->
|
hasAccessToDocument: (req, document, method=null) ->
|
||||||
get = (method ? req.method).toLowerCase() is 'get'
|
get = (method ? req.method).toLowerCase() is 'get'
|
||||||
return true if get and document.get('submitted')
|
return true if get and document.get('submitted')
|
||||||
return true if get and ('employer' in (req.user?.get('permissions') ? []))
|
|
||||||
return true if get and not document.get('submittedCode') # Allow leaderboard access to non-multiplayer sessions
|
return true if get and not document.get('submittedCode') # Allow leaderboard access to non-multiplayer sessions
|
||||||
super(arguments...)
|
super(arguments...)
|
||||||
|
|
||||||
|
|
|
@ -102,7 +102,7 @@ LevelSessionSchema.set('toObject', {
|
||||||
plan = submittedCode[if doc.get('team') is 'humans' then 'hero-placeholder' else 'hero-placeholder-1']?.plan ? ''
|
plan = submittedCode[if doc.get('team') is 'humans' then 'hero-placeholder' else 'hero-placeholder-1']?.plan ? ''
|
||||||
plan = LZString.compressToUTF16 plan
|
plan = LZString.compressToUTF16 plan
|
||||||
ret.interpret = plan
|
ret.interpret = plan
|
||||||
ret.code = submittedCode
|
ret.code = {'hero-placeholder': {plan: ''}, 'hero-placeholder-1': {plan: ''}}
|
||||||
return ret
|
return ret
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Reference in a new issue