diff options
| author | Kevin Fenzi <kevin@scrye.com> | 2016-06-09 16:10:08 +0000 |
|---|---|---|
| committer | Kevin Fenzi <kevin@scrye.com> | 2016-06-09 16:10:08 +0000 |
| commit | 43abff48166308e8afd5cb821e8afc17eeff2636 (patch) | |
| tree | 7a5ebd0e4d8f099edb708fbfb3a3a5bdccba7d8f /roles/fas_server/files | |
| parent | 94411b528f648051011373990861cf3a6c3bc22f (diff) | |
| download | ansible-43abff48166308e8afd5cb821e8afc17eeff2636.tar.gz ansible-43abff48166308e8afd5cb821e8afc17eeff2636.tar.xz ansible-43abff48166308e8afd5cb821e8afc17eeff2636.zip | |
patch from https://github.com/fedora-infra/fas/pull/163
Diffstat (limited to 'roles/fas_server/files')
| -rw-r--r-- | roles/fas_server/files/user.py | 5 | ||||
| -rw-r--r-- | roles/fas_server/files/validators.py | 17 |
2 files changed, 21 insertions, 1 deletions
diff --git a/roles/fas_server/files/user.py b/roles/fas_server/files/user.py index 3974a6066..0f246da3f 100644 --- a/roles/fas_server/files/user.py +++ b/roles/fas_server/files/user.py @@ -88,7 +88,7 @@ from fas.auth import ( from fas.util import available_languages from fas.validators import KnownUser, PasswordStrength, ValidGPGKeyID, \ ValidSSHKey, NonFedoraEmail, ValidLanguage, UnknownUser, ValidUsername, \ - ValidHumanWithOverride, MaybeFloat + ValidHumanWithOverride, MaybeFloat, EVEmail from fas import _ #ADMIN_GROUP = config.get('admingroup', 'accounts') @@ -112,10 +112,12 @@ class UserCreate(validators.Schema): email = validators.All( validators.Email(not_empty=True, strip=True), NonFedoraEmail(not_empty=True, strip=True), + EVEmail(not_empty=True, strip=True), ) verify_email = validators.All( validators.Email(not_empty=True, strip=True), NonFedoraEmail(not_empty=True, strip=True), + EVEmail(not_empty=True, strip=True), ) security_question = validators.UnicodeString(not_empty=True) security_answer = validators.UnicodeString(not_empty=True) @@ -159,6 +161,7 @@ class UserSave(validators.Schema): email = validators.All( validators.Email(not_empty=True, strip=True, max=128), NonFedoraEmail(not_empty=True, strip=True, max=128), + EVEmail(not_empty=True, strip=True, max=128), ) locale = ValidLanguage(not_empty=True, strip=True) #fedoraPersonBugzillaMail = validators.Email(strip=True, max=128) diff --git a/roles/fas_server/files/validators.py b/roles/fas_server/files/validators.py index 6f2c5cd64..ba631ec51 100644 --- a/roles/fas_server/files/validators.py +++ b/roles/fas_server/files/validators.py @@ -36,6 +36,7 @@ import re from turbogears import validators, config +from turbomail.email_validator import EmailValidator from sqlalchemy.exc import InvalidRequestError from fas.util import available_languages @@ -175,6 +176,22 @@ class NonFedoraEmail(validators.FancyValidator): if value.endswith('@fedoraproject.org'): raise validators.Invalid(self.message('no_loop', state), value, state) +class EVEmail(validators.FancyValidator): + '''Make sure that an email address is not @fedoraproject.org''' + messages = {'invalid': _('Your email address is invalid')} + + def _to_python(self, value, state): + # pylint: disable-msg=C0111,W0613 + return value.strip() + + def validate_python(self, value, state): + # pylint: disable-msg=C0111 + ev = EmailValidator() + try: + ev.validate_or_raise(value) + except: + raise validators.Invalid(self.message('invalid', state), value, state) + class MaybeFloat(validators.FancyValidator): ''' Make sure the float value is a valid float value (or None) ''' messages = {'no_float': _('Error - Not a valid float value: %(value)s')} |
