feat(forms): user profile form would detect nicely duplicates and show a form error.
This commit is contained in:
parent
14e425bce6
commit
d684cf1f5d
1 changed files with 6 additions and 0 deletions
|
|
@ -64,6 +64,7 @@ class ChangePasswordSchema(colander.Schema):
|
|||
|
||||
@colander.deferred
|
||||
def deferred_username_validator(node, kw):
|
||||
old_username = kw.get('username')
|
||||
|
||||
def name_validator(node, value):
|
||||
msg = _(
|
||||
|
|
@ -74,6 +75,11 @@ def deferred_username_validator(node, kw):
|
|||
if not re.match(r'^[\w]{1}[\w\-\.]{0,254}$', value):
|
||||
raise colander.Invalid(node, msg)
|
||||
|
||||
if value != old_username:
|
||||
existing_user = User.get_by_username(value, case_insensitive=True)
|
||||
if existing_user:
|
||||
raise colander.Invalid(node, 'Username is already taken')
|
||||
|
||||
return name_validator
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue