mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-02-17 00:40:56 -05:00
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
|
||||
@level = @supermodel.loadModel(@level, 'level').model
|
||||
@listenToOnce @level, 'sync', @onLevelLoaded
|
||||
|
||||
|
||||
reportLoadError: ->
|
||||
window.tracker?.trackEvent 'LevelLoadError',
|
||||
category: 'Error',
|
||||
|
@ -154,7 +154,7 @@ module.exports = class LevelLoader extends CocoClass
|
|||
|
||||
session = new LevelSession().setURL url
|
||||
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})
|
||||
@session = @sessionResource.model
|
||||
if @opponentSessionID
|
||||
|
|
|
@ -19,14 +19,13 @@ class LevelSessionHandler extends Handler
|
|||
submittedCode = document.submittedCode ? {}
|
||||
unless req.user?.isAdmin() 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
|
||||
document = _.omit document, @privateProperties
|
||||
if req.query.interpret
|
||||
plan = submittedCode[if document.team is 'humans' then 'hero-placeholder' else 'hero-placeholder-1']?.plan ? ''
|
||||
plan = LZString.compressToUTF16 plan
|
||||
document.interpret = plan
|
||||
document.code = submittedCode
|
||||
document.code = {'hero-placeholder': {plan: ''}, 'hero-placeholder-1': {plan: ''}}
|
||||
return document
|
||||
|
||||
getActiveSessions: (req, res) ->
|
||||
|
@ -58,7 +57,6 @@ class LevelSessionHandler extends Handler
|
|||
hasAccessToDocument: (req, document, method=null) ->
|
||||
get = (method ? req.method).toLowerCase() is 'get'
|
||||
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
|
||||
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 = LZString.compressToUTF16 plan
|
||||
ret.interpret = plan
|
||||
ret.code = submittedCode
|
||||
ret.code = {'hero-placeholder': {plan: ''}, 'hero-placeholder-1': {plan: ''}}
|
||||
return ret
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in a new issue