70 lines
2.8 KiB
Python
70 lines
2.8 KiB
Python
# coding=utf-8
|
||
from django import forms
|
||
from django.contrib.auth.forms import AuthenticationForm
|
||
from django.utils.translation import ugettext_lazy as _
|
||
from django.core.exceptions import ValidationError
|
||
from .models import *
|
||
# from djng.styling.bootstrap3.forms import Bootstrap3ModelForm
|
||
# from djng.forms import fields, NgModelFormMixin, NgFormValidationMixin, NgModelForm
|
||
# from datetimepicker.widgets import DateTimePicker
|
||
# from datetimepicker.helpers import js_loader_url
|
||
|
||
|
||
|
||
# class PersonForm(NgModelFormMixin, NgFormValidationMixin, NgModelForm, Bootstrap3ModelForm):
|
||
#
|
||
# form_name = 'person_form'
|
||
# scope_prefix = 'person_data'
|
||
#
|
||
# class Meta:
|
||
# model = UserProfile
|
||
# fields = ['name', 'departament', 'company', 'company_position',
|
||
# 'days_to_order_cancellation_default', 'days_to_pay_default',
|
||
# 'pay_terms', 'birthdate',
|
||
# 'phone', 'email', 'discount', 'document_sign_person']
|
||
|
||
|
||
|
||
def emailValid(value):
|
||
if User.objects.filter(username=value, is_active=True):
|
||
raise ValidationError(_(u'пользователь с таким e-mail уже существует, воспользуйтесь восстановлением пароля'))
|
||
|
||
def check_authorizationBy_cleaned_data(cleaned_data):
|
||
from django.contrib.auth import authenticate
|
||
print('check_authorizationBy_cleaned_data')
|
||
username = cleaned_data.get('username')
|
||
password = cleaned_data.get('password')
|
||
|
||
user = authenticate(username=username, password=password)
|
||
# print(user)
|
||
if user:
|
||
# if user.is_active:
|
||
return user
|
||
|
||
def check_activate_by_user(reg_user):
|
||
print('check_activate_by_user')
|
||
if reg_user:
|
||
if reg_user.is_active:
|
||
return True
|
||
|
||
return False
|
||
|
||
class LoginForm(AuthenticationForm):
|
||
username = forms.EmailField(label=_('Email'), widget=forms.TextInput())
|
||
password = forms.CharField(min_length=8, label=_('Пароль'), widget=forms.PasswordInput(render_value=False))
|
||
|
||
def clean(self):
|
||
# print('check')
|
||
cleaned_data = super(LoginForm, self).clean()
|
||
reg_user = check_authorizationBy_cleaned_data(cleaned_data)
|
||
# print(reg_user)
|
||
if not reg_user:
|
||
raise ValidationError(_(u'Пользователь с введенными регистрационными данными не зарегистрирован. Проверьте правильность ввода e-mail и пароля.'))
|
||
else:
|
||
if not check_activate_by_user(reg_user):
|
||
raise ValidationError(_(u'Указанная учетная запись не была Активирована'))
|
||
return cleaned_data
|
||
|
||
|
||
class ResetPassword_byEmail_Form(AuthenticationForm):
|
||
email = forms.EmailField(label=_('Email'), widget=forms.TextInput()) |