Better username validator and remove trailing whitespace
This commit is contained in:
parent
9d7ad3c492
commit
710fbc949b
|
@ -5,7 +5,6 @@ from uuid import uuid4
|
||||||
|
|
||||||
import dateutil.parser
|
import dateutil.parser
|
||||||
from dateutil.parser import ParserError
|
from dateutil.parser import ParserError
|
||||||
from django.contrib.auth.models import AbstractUser
|
|
||||||
from django.contrib.postgres.fields import ArrayField as DjangoArrayField
|
from django.contrib.postgres.fields import ArrayField as DjangoArrayField
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.core.files.base import ContentFile
|
from django.core.files.base import ContentFile
|
||||||
|
@ -25,6 +24,14 @@ def validate_remote_id(value):
|
||||||
params={'value': value},
|
params={'value': value},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def validate_username(value):
|
||||||
|
''' make sure usernames look okay '''
|
||||||
|
if not re.match(r'^[A-Za-z\-_\.]+$', value):
|
||||||
|
raise ValidationError(
|
||||||
|
_('%(value)s is not a valid remote_id'),
|
||||||
|
params={'value': value},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class ActivitypubFieldMixin:
|
class ActivitypubFieldMixin:
|
||||||
''' make a database field serializable '''
|
''' make a database field serializable '''
|
||||||
|
@ -134,7 +141,7 @@ class UsernameField(ActivitypubFieldMixin, models.CharField):
|
||||||
_('username'),
|
_('username'),
|
||||||
max_length=150,
|
max_length=150,
|
||||||
unique=True,
|
unique=True,
|
||||||
validators=[AbstractUser.username_validator],
|
validators=[validate_username],
|
||||||
error_messages={
|
error_messages={
|
||||||
'unique': _('A user with that username already exists.'),
|
'unique': _('A user with that username already exists.'),
|
||||||
},
|
},
|
||||||
|
|
|
@ -66,7 +66,7 @@ def register(request):
|
||||||
if not form.is_valid():
|
if not form.is_valid():
|
||||||
errors = True
|
errors = True
|
||||||
|
|
||||||
username = form.data['username']
|
username = form.data['username'].strip()
|
||||||
email = form.data['email']
|
email = form.data['email']
|
||||||
password = form.data['password']
|
password = form.data['password']
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue