Properly load schemas specified as strings (#943)

* Properly load schemas specified by their key string
* Add test for UserSchema 
* Prevent users without teams from interacting with challenges if the CTF is in Team Mode
This commit is contained in:
Kevin Chung
2019-04-08 01:47:26 -04:00
committed by GitHub
parent 7c60c697ee
commit c0a32a836b
16 changed files with 111 additions and 24 deletions

View File

@@ -3,6 +3,7 @@ from marshmallow import fields, post_load, validate, ValidationError
from marshmallow_sqlalchemy import field_for
from CTFd.schemas.challenges import ChallengeSchema
from CTFd.models import ma, Submissions
from CTFd.utils import string_types
class SubmissionSchema(ma.ModelSchema):
@@ -38,9 +39,9 @@ class SubmissionSchema(ma.ModelSchema):
def __init__(self, view=None, *args, **kwargs):
if view:
if type(view) == str:
if isinstance(view, string_types):
kwargs['only'] = self.views[view]
elif type(view) == list:
elif isinstance(view, list):
kwargs['only'] = view
super(SubmissionSchema, self).__init__(*args, **kwargs)