summaryrefslogtreecommitdiffstats
path: root/roles/fas_server/files
diff options
context:
space:
mode:
authorKevin Fenzi <kevin@scrye.com>2016-06-09 16:10:08 +0000
committerKevin Fenzi <kevin@scrye.com>2016-06-09 16:10:08 +0000
commit43abff48166308e8afd5cb821e8afc17eeff2636 (patch)
tree7a5ebd0e4d8f099edb708fbfb3a3a5bdccba7d8f /roles/fas_server/files
parent94411b528f648051011373990861cf3a6c3bc22f (diff)
downloadansible-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.py5
-rw-r--r--roles/fas_server/files/validators.py17
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')}