Email validation
This commit is contained in:
parent
abe4ef1851
commit
0fd9b02c80
@ -10,7 +10,7 @@ Breaking changes:
|
||||
|
||||
New features:
|
||||
|
||||
- *add item here*
|
||||
- Email validation [ksuess]
|
||||
|
||||
Bug fixes:
|
||||
|
||||
|
@ -1,12 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Interfaces for plone.app.discussion
|
||||
"""
|
||||
from plone import api
|
||||
from plone.app.discussion import _
|
||||
from zope import schema
|
||||
from zope.component.interfaces import IObjectEvent
|
||||
from zope.interface import Interface
|
||||
from zope.interface import Interface, Invalid
|
||||
from zope.interface.common.mapping import IIterableMapping
|
||||
|
||||
def isEmail(value):
|
||||
reg_tool = api.portal.get_tool(name='portal_registration')
|
||||
if not (value and reg_tool.isValidEmail(value)):
|
||||
raise Invalid(_("Invalid email address."))
|
||||
return True
|
||||
|
||||
class IConversation(IIterableMapping):
|
||||
"""A conversation about a content object.
|
||||
@ -150,7 +156,7 @@ class IComment(Interface):
|
||||
|
||||
# for anonymous comments only, set to None for logged in comments
|
||||
author_name = schema.TextLine(title=_(u'Name'), required=False)
|
||||
author_email = schema.TextLine(title=_(u'Email'), required=False)
|
||||
author_email = schema.TextLine(title=_(u'Email'), required=False, constraint=isEmail)
|
||||
|
||||
title = schema.TextLine(title=_(u'label_subject',
|
||||
default=u'Subject'))
|
||||
|
@ -514,6 +514,27 @@ Try again.
|
||||
>>> 'Your comment awaits moderator approval' in unprivileged_browser.contents
|
||||
True
|
||||
|
||||
Email is being validated.
|
||||
|
||||
>>> unprivileged_browser.getControl(name='form.widgets.text').value = "This is an anonymous comment with email"
|
||||
>>> unprivileged_browser.getControl(name='form.widgets.author_email').value = "abc"
|
||||
>>> unprivileged_browser.getControl(name='form.buttons.comment').click()
|
||||
>>> 'Invalid email address.' in unprivileged_browser.contents
|
||||
True
|
||||
>>> 'Your comment awaits moderator approval' in unprivileged_browser.contents
|
||||
False
|
||||
|
||||
Check again with valid email.
|
||||
|
||||
>>> unprivileged_browser.getControl(name='form.widgets.text').value = "This is an anonymous comment with email"
|
||||
>>> unprivileged_browser.getControl(name='form.widgets.author_email').value = "email@example.org"
|
||||
>>> unprivileged_browser.getControl(name='form.buttons.comment').click()
|
||||
>>> 'Invalid email address.' in unprivileged_browser.contents
|
||||
False
|
||||
>>> 'Your comment awaits moderator approval' in unprivileged_browser.contents
|
||||
True
|
||||
|
||||
|
||||
Posting as member should still work. Especially it should not
|
||||
complain about missing input for an invisible author_email field.
|
||||
Login as user 'jim'.
|
||||
|
Loading…
Reference in New Issue
Block a user