Exemplo n.º 1
0
def save_faucet(request):
    """Handle saving faucet requests."""
    email_address = request.POST.get('emailAddress')
    eth_address = request.POST.get('ethAddress')
    is_authenticated = request.user.is_authenticated
    profile = request.user.profile if is_authenticated and hasattr(
        request.user, 'profile') else None

    if not profile:
        return JsonResponse(
            {
                'message':
                _('You must be authenticated via github to use this feature!')
            },
            status=401)

    try:
        validate_slug(eth_address)
        if email_address:
            validate_email(email_address)
    except Exception as e:
        return JsonResponse({'message': str(e)}, status=400)

    comment = escape(strip_tags(request.POST.get('comment', '')))
    if profile.faucet_requests.filter(fulfilled=True):
        return JsonResponse(
            {
                'message':
                _('The submitted github profile shows a previous faucet distribution.'
                  )
            },
            status=403)
    elif profile.faucet_requests.filter(rejected=False):
        return JsonResponse(
            {
                'message':
                _('The submitted github profile shows a pending faucet distribution.'
                  )
            },
            status=403)
    fr = FaucetRequest.objects.create(
        fulfilled=False,
        github_username=request.user.username,
        github_meta={},
        address=eth_address,
        email=email_address if email_address else request.user.email,
        comment=comment,
        profile=profile,
    )
    new_faucet_request(fr)

    return JsonResponse({'message': _('Created.')}, status=201)
Exemplo n.º 2
0
def save_faucet(request):
    github_profile = request.POST.get('githubProfile')
    email_address = request.POST.get('emailAddress')
    eth_address = request.POST.get('ethAddress')
    profile_handle = request.session.get('handle', '')

    try:
        validate_slug(github_profile)
        validate_email(email_address)
        validate_slug(eth_address)
    except Exception as e:
        return JsonResponse({'message': str(e)}, status=400)

    comment = escape(strip_tags(request.POST.get('comment')))
    checkeduser = check_github(github_profile)
    if FaucetRequest.objects.filter(fulfilled=True,
                                    github_username=github_profile):
        return JsonResponse(
            {
                'message':
                'The submitted github profile shows a previous faucet distribution.'
            },
            status=403)
    elif FaucetRequest.objects.filter(github_username=github_profile,
                                      rejected=False):
        return JsonResponse(
            {
                'message':
                'The submitted github profile shows a pending faucet distribution.'
            },
            status=403)
    elif not checkeduser:
        return JsonResponse(
            {
                'message':
                'The submitted github profile could not be found on github.'
            },
            status=400)

    fr = FaucetRequest.objects.create(
        fulfilled=False,
        github_username=github_profile,
        input_github_username=profile_handle,
        github_meta=checkeduser,
        address=eth_address,
        email=email_address,
        comment=comment,
    )
    new_faucet_request(fr)

    return JsonResponse({'message': 'Created.'}, status=201)
Exemplo n.º 3
0
Arquivo: views.py Projeto: sprusr/web
def save_faucet(request):
    """Handle saving faucet requests."""
    email_address = request.POST.get('emailAddress')
    eth_address = request.POST.get('ethAddress')
    is_authenticated = request.user.is_authenticated
    profile = request.user.profile if is_authenticated and hasattr(request.user, 'profile') else None

    if not profile:
        return JsonResponse({
            'message': _('You must be authenticated via github to use this feature!')
        }, status=401)

    try:
        validate_slug(eth_address)
        if email_address:
            validate_email(email_address)
    except Exception as e:
        return JsonResponse({'message': str(e)}, status=400)

    comment = escape(strip_tags(request.POST.get('comment', '')))
    if not profile.trust_profile and profile.github_created_on > (timezone.now() - timezone.timedelta(days=7)):
        return JsonResponse({
            'message': _('For SPAM prevention reasons, you may not perform this action right now.  Please contact support if you believe this message is in error.')
        }, status=403)
    if profile.faucet_requests.filter(fulfilled=True):
        return JsonResponse({
            'message': _('The submitted github profile shows a previous faucet distribution.')
        }, status=403)
    elif profile.faucet_requests.filter(rejected=False):
        return JsonResponse({
            'message': _('The submitted github profile shows a pending faucet distribution.')
        }, status=403)
    fr = FaucetRequest.objects.create(
        fulfilled=False,
        github_username=request.user.username,
        github_meta={},
        address=eth_address,
        email=email_address if email_address else request.user.email,
        comment=comment,
        profile=profile,
    )
    new_faucet_request(fr)

    return JsonResponse({'message': _('Created.')}, status=201)