1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-17 15:53:28 +00:00
This commit is contained in:
zhengxie
2016-06-14 14:22:59 +08:00
parent 2e5016b1a3
commit 798a69d6db
2 changed files with 45 additions and 2 deletions

View File

@@ -1,4 +1,6 @@
# encoding: utf-8 # encoding: utf-8
import re
from django import forms from django import forms
from django.core.mail import send_mail from django.core.mail import send_mail
from django.utils import translation from django.utils import translation
@@ -530,9 +532,15 @@ class RegistrationForm(forms.Form):
password2 = forms.CharField(widget=forms.PasswordInput(attrs=attrs_dict, render_value=False), password2 = forms.CharField(widget=forms.PasswordInput(attrs=attrs_dict, render_value=False),
label=_("Password (again)")) label=_("Password (again)"))
@classmethod
def allow_register(self, email):
prog = re.compile(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)",
re.IGNORECASE)
return False if prog.match(email) is None else True
def clean_email(self): def clean_email(self):
email = self.cleaned_data['email'] email = self.cleaned_data['email']
if not is_valid_username(email): if not self.allow_register(email):
raise forms.ValidationError(_("Enter a valid email address.")) raise forms.ValidationError(_("Enter a valid email address."))
emailuser = ccnet_threaded_rpc.get_emailuser(email) emailuser = ccnet_threaded_rpc.get_emailuser(email)

View File

@@ -1,5 +1,5 @@
from seahub.test_utils import BaseTestCase from seahub.test_utils import BaseTestCase
from seahub.base.accounts import User from seahub.base.accounts import User, RegistrationForm
from post_office.models import Email from post_office.models import Email
@@ -15,3 +15,38 @@ class UserTest(BaseTestCase):
assert len(Email.objects.all()) > 0 assert len(Email.objects.all()) > 0
# email = Email.objects.all()[0] # email = Email.objects.all()[0]
# print email.html_message # print email.html_message
class RegistrationFormTest(BaseTestCase):
def setUp(self):
self.valid_emails = [
'a@1.com',
'a.1@1.com',
'a+.1@1.com-pany',
'a+-_.1@1.com-pany',
]
self.invalid_emails = [
'"a"@1.com',
'<script>@1.com',
'//@1.com',
'a+.-{}?1@1.com',
'a+.-()1@1.com',
]
self.form_class = RegistrationForm
def test_allow_register(self):
for e in self.valid_emails:
assert self.form_class.allow_register(e) is True
for e in self.invalid_emails:
assert self.form_class.allow_register(e) is False
def test_clean_email(self):
form = self.form_class({'email': 'some_random_user@1.com',
'password1': '123',
'password2': '123',
})
assert form.is_valid() is True
assert form.clean_email() == 'some_random_user@1.com'