Exemple #1
0
def createChallenge(request):
    context = standardContext(request)
    user = User.from_authuser(request.user)

    if not user.allow_create:
        raise exceptions.PermissionDenied()

    if request.method == "POST":
        form = CreateChallengeForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['challenge_name'].strip()
            category = form.cleaned_data['category']
            if Challenge.objects.filter(name=name).count() > 0:
                context['error_msg'] = "A challenge with this name already exists."
            else:
                challenge = Challenge.create_challenge(name, 'SomeFlag', user, 100, category)
                try:
                    backend.create_challenge(challenge, user)
                except Exception as e:
                    challenge.delete()
                    raise e
                return redirect("challenges:edit", challenge_id=challenge.id)
        else:
            context['error_msg'] = "Bad data"
    else:
        form = CreateChallengeForm()
    context['form'] = form

    return render(request, 'challenges/create.html', context)
Exemple #2
0
def createChallenge(request):
    context = standardContext(request)
    user = User.from_authuser(request.user)

    if not user.allow_create:
        raise exceptions.PermissionDenied()

    if request.method == "POST":
        form = CreateChallengeForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['challenge_name'].strip()
            category = form.cleaned_data['category']
            if Challenge.objects.filter(name=name).count() > 0:
                context[
                    'error_msg'] = "A challenge with this name already exists."
            else:
                challenge = Challenge.create_challenge(name, 'SomeFlag', user,
                                                       100, category)
                try:
                    backend.create_challenge(challenge, user)
                except Exception as e:
                    challenge.delete()
                    raise e
                return redirect("challenges:edit", challenge_id=challenge.id)
        else:
            context['error_msg'] = "Bad data"
    else:
        form = CreateChallengeForm()
    context['form'] = form

    return render(request, 'challenges/create.html', context)