<commit_before># -*- coding: utf-8 -*-

"""
    Обработчики запросов для взаимодействия с API PayMaster
    https://paymaster.ru/Partners/ru/docs/protocol

    @author: <NAME>
    @contact: <EMAIL>
    @status: stable
"""

import base64
import urllib
import hashlib
from datetime import datetime, timedelta

from django.views import generic
from django.http import HttpResponseRedirect, HttpResponse, QueryDict
from django.utils.translation import ugettext_lazy as _
from django.core.exceptions import ValidationError

from .models import Invoice
from . import settings
from . import signals
from . import logger
from . import utils


class InitialView(generic.FormView):
    """
        Форма инициации платежа.

        Данный обработчик предназначен для формирования запроса инициации
        платежа. Здесь будут сформированы параметры платежа в соответствии
        с настройками приложения и имеющимися данными пользователя.
    """

    _payment_no = None

    phone_field = 'phone'
    email_field = 'email'
    amount_key = 'amount'

    def form_valid(self, form):
        """ Формируем переход на сайт платежной системы """
        if not self.request.user.is_authenticated():
            logger.warn(u'No user. Permission denied.')
            return HttpResponse('NO ACCESS', status=403)

        try:
            url = '{0}?{1}'.format(
                settings.PAYMASTER_INIT_URL,
                self.init_query(form))
        except ValidationError:<commit_msg>fix is_authentication check for django 2.1<commit_after># -*- coding: utf-8 -*-

"""
    Обработчики запросов для взаимодействия с API PayMaster
    https://paymaster.ru/Partners/ru/docs/protocol

    @author: <NAME>
    @contact: <EMAIL>
    @status: stable
"""

import base64
import urllib
import hashlib
from datetime import datetime, timedelta

from django.views import generic
from django.http import HttpResponseRedirect, HttpResponse, QueryDict
from django.utils.translation import ugettext_lazy as _
from django.core.exceptions import ValidationError

from .models import Invoice
from . import settings
from . import signals
from . import logger
from . import utils


class InitialView(generic.FormView):
    """
        Форма инициации платежа.

        Данный обработчик предназначен для формирования запроса инициации
        платежа. Здесь будут сформированы параметры платежа в соответствии
        с настройками приложения и имеющимися данными пользователя.
    """

    _payment_no = None

    phone_field = 'phone'
    email_field = 'email'
    amount_key = 'amount'

    def form_valid(self, form):
        """ Формируем переход на сайт платежной системы """
        if not self.request.user.is_authenticated:
            logger.warn(u'No user. Permission denied.')
            return HttpResponse('NO ACCESS', status=403)

        try:
            url = '{0}?{1}'.format(
                settings.PAYMASTER_INIT_URL,
                self.init_query(form))
        except ValidationError:
{'fraction_non_alphanumeric': 0.08012068387529332, 'fraction_numerical': 0.006034193764666443, 'mean_word_length': 2.994645247657296, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3173316', 'n_tokens_mistral': 944, 'n_tokens_neox': 966, 'n_words': 254}