示例#1
0
    def mutate(self, info, name, url, content):
        validate_user_is_admin(info.context.user)

        page = Page(name=name, url=url, content=content)
        page.save()

        return CreatePage(message="Added")
示例#2
0
    def mutate(self,
               info,
               id,
               name,
               description,
               points=0,
               flag="",
               show=False,
               category=None):
        validate_user_is_admin(info.context.user)

        try:
            category = Category.objects.get(name=category)
            challenge = Challenge.objects.get(pk=id)
            challenge.name = name
            challenge.description = description
            challenge.points = points
            challenge.flag = flag
            challenge.show = show
            challenge.category = category

            challenge.save()

            message = "success"
        except:
            message = "failure"

        return UpdateChallenge(message)
示例#3
0
文件: schema.py 项目: yacf/yacf
 def resolve_users(root, info, search=None, **kwargs):
     validate_user_is_admin(info.context.user)
     if search:
         return User.objects.filter(
             Q(username__icontains=search) | Q(first_name__icontains=search)
             | Q(last_name__icontains=search) | Q(email__icontains=search))
     else:
         return User.objects.all()
示例#4
0
    def mutate(self, info, name, description):
        validate_user_is_admin(info.context.user)
        try:
            Category(name=name, description=description).save()
        except:
            raise Exception('Failed to add category')

        return AddCategory(code=0)
示例#5
0
    def mutate(self, info, name, description):
        validate_user_is_admin(info.context.user)

        Category(name=name,
                 description=description).save(action="CR",
                                               user=info.context.user)

        return AddCategory(code=0)
示例#6
0
文件: schema.py 项目: yacf/yacf
 def resolve_teams(root, info, search=None, **kwargs):
     validate_user_is_admin(info.context.user)
     if search:
         return Team.objects.filter(
             Q(name__icontains=search) | Q(email__icontains=search)
             | Q(affiliation__icontains=search)
             | Q(website__icontains=search))
     else:
         return Team.objects.all()
示例#7
0
文件: schema.py 项目: yacf/yacf
 def resolve_user(self, info, id=None):
     validate_user_is_admin(info.context.user)
     if validate_user_is_staff(info.context.user):
         if id:
             return User.objects.get(id=id)
         else:
             raise Exception('No user ID was provided')
     else:
         raise Exception('Not authorized to view query users')
示例#8
0
    def mutate(self, info, id, name, description):
        validate_user_is_admin(info.context.user)

        category = Category.objects.get(pk=id)
        category.name = name
        category.description = description
        category.save()

        return UpdateCategory(code=0)
示例#9
0
    def mutate(self, info, name, email, affiliation, accesscode=None):
        validate_user_is_admin(info.context.user)
        try:
            newTeam = Team(name=name, email=email, affiliation=affiliation, accesscode=''.join(random.choices(string.ascii_uppercase + string.digits, k=10)))
            newTeam.save()
            code = 0
        except:
            code = 1

        return AddTeam(code=code)
示例#10
0
    def mutate(self, info, name): #, accesscode=None):
        validate_user_is_admin(info.context.user)
        try:
            team = Team.objects.get(name=name)
            team.delete()
            code = 0
        except:
            code = 1

        return RemoveTeam(code)
示例#11
0
    def mutate(self, info, id):
        validate_user_is_admin(info.context.user)
        # try:
        category = Category.objects.get(pk=id)
        category.delete(user=info.context.user)
        message = "success"
        # except:
        #     message = "failure"

        return RemoveCategory(message)
示例#12
0
    def mutate(self, info, id):
        validate_user_is_admin(info.context.user)

        try:
            challenge = Challenge.objects.get(pk=id)
            challenge.delete()
            code = 0
        except:
            code = 1

        return RemoveChallenge(code)
示例#13
0
文件: schema.py 项目: yacf/yacf
    def mutate(self, info, content):
        validate_user_is_admin(info.context.user)
        welcome = WelcomePage.objects.all().first()
        if welcome:
            welcome.content = content
            welcome.save()
        else:
            welcome = WelcomePage(content=content)
            welcome.save()

        return Welcome(status="Added")
示例#14
0
    def mutate(self, info, id, name, description):
        validate_user_is_admin(info.context.user)
        try:
            category = Category.objects.get(pk=id)
            category.name = name
            category.description = description
            category.save()
            message = "success"
        except:
            message = "failure"

        return UpdateCategory(message)
示例#15
0
文件: schema.py 项目: yacf/yacf
    def mutate(self, info, name, email, affiliation, accesscode=None):
        validate_user_is_admin(info.context.user)

        team = Team(name=name, email=email, affiliation=affiliation)
        team.save()

        if accesscode:
            AccessCode(team=team, value=accesscode).save()
        else:
            AccessCode(team=team,
                       value=''.join(
                           random.choices(string.ascii_uppercase +
                                          string.digits,
                                          k=10))).save()

        return AddTeam(code=0)
示例#16
0
    def mutate(self, info, id, name, affiliation, email, website, accesscode): #, accesscode=None):
        validate_user_is_admin(info.context.user)
        try:
            team = Team.objects.get(pk=id)
            team.name = name
            team.affiliation = affiliation
            team.email = email
            team.website = website
            team.accesscode = accesscode
            team.save()

            message = "success"
        except:
            message = "failure"

        return UpdateTeam(message)
示例#17
0
文件: schema.py 项目: yacf/yacf
    def mutate(self, info, name, description, category, flag, precomputed, hashed, points=0, encoded=False, hidden=False):
        validate_user_is_admin(info.context.user)
        get_category = Category.objects.get(name=category)
        
        newChallenge = Challenge(name=name, description=description, encoded=encoded, points=points, hidden=hidden, category=get_category)
        newChallenge.save()

        if hashed:
            if precomputed:
                flag = Flag(value=flag, challenge=newChallenge)
            else:
                flag = Flag(value=hashlib.sha256(flag.encode('utf-8')).hexdigest(), challenge=newChallenge)
        else:
            flag = Flag(value=flag, challenge=newChallenge)

        flag.save()

        return AddChallenge(code=0)
示例#18
0
    def mutate(self,
               info,
               name,
               description,
               points=0,
               flag="",
               show=False,
               category=None):
        validate_user_is_admin(info.context.user)

        try:
            if category:
                try:
                    category = Category.objects.get(name=category)
                    newChallenge = Challenge(name=name,
                                             description=description,
                                             points=points,
                                             show=show,
                                             category=category)
                    newChallenge.save()
                    flag = Flag(value=hashlib.md5(
                        flag.encode('utf-8')).hexdigest(),
                                challenge=newChallenge)
                    flag.save()
                except:
                    # Category not found
                    message = "failure"
            else:
                newChallenge = Challenge(name=name,
                                         description=description,
                                         points=points,
                                         show=show)
                newChallenge.save()
                flag = Flag(value=flag, challenge=newChallenge)
                flag.save()

            message = "success"
        except:
            message = "failure"

        return AddChallenge(message)
示例#19
0
    def mutate(self, info, username, email, password, firstname, lastname,
               accesscode):
        validate_user_is_admin(info.context.user)
        team = Team.objects.filter(accesscode=accesscode).first()
        if team:
            newUser = User.objects.create_user(username=username,
                                               first_name=firstname,
                                               last_name=lastname,
                                               email=email,
                                               password=password)
            newProfile = Profile(user=newUser,
                                 verified=False,
                                 team=team,
                                 hidden=False)
            newProfile.save()
            code = 0
        else:
            # Invaild access code
            code = 1

        login(info.context, newUser)

        return AddUser(code=code)
示例#20
0
文件: schema.py 项目: yacf/yacf
 def resolve_login_tracker(self, info):
     validate_user_is_admin(info.context.user)
     return LoginTracker.objects.all()
示例#21
0
文件: schema.py 项目: yacf/yacf
 def resolve_value(self, info):
     validate_user_is_admin(info.context.user)
     return self.value
示例#22
0
文件: schema.py 项目: yacf/yacf
 def resolve_hashed(self, info):
     validate_user_is_admin(info.context.user)
     return self.hashed
示例#23
0
文件: schema.py 项目: yacf/yacf
 def resolve_flag(self, info, **kwargs):
     validate_user_is_admin(info.context.user)
     return Flag.objects.get(challenge__pk=kwargs.get('cid'))
示例#24
0
 def resolve_logs(self, info, **kwargs):
     validate_user_is_admin(info.context.user)
     return Log.objects.all()
示例#25
0
 def resolve_users(self, info):
     validate_user_is_admin(info.context.user)
     if validate_user_is_staff(info.context.user):
         return User.objects.all()
     else:
         raise Exception('Not authorized to view query users')