diff --git a/CHANGES.txt b/CHANGES.txt index 0004577..589c5fa 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -4,6 +4,10 @@ Changelog 2.0RC1 (unreleased) ------------------- +- Check if the current user has configured an e-mail address for the email + notification option. This fixes http://dev.plone.org/plone/ticket/11428. + [timo] + - Import Owned from OFS.owner to avoid deprecation warnings. [timo] @@ -18,6 +22,7 @@ Changelog Plone 4.1. [timo] + 1.0RC1 (unreleased) ------------------- diff --git a/plone/app/discussion/browser/comments.py b/plone/app/discussion/browser/comments.py index 0c2a9e4..f7fd9c3 100644 --- a/plone/app/discussion/browser/comments.py +++ b/plone/app/discussion/browser/comments.py @@ -106,10 +106,17 @@ class CommentForm(extensible.ExtensibleForm, form.Form): registry = queryUtility(IRegistry) settings = registry.forInterface(IDiscussionSettings, check=False) - portal_membership = getToolByName(self.context, 'portal_membership') + mtool = getToolByName(self.context, 'portal_membership') + member = mtool.getAuthenticatedMember() + member_email = member.getProperty('email') - if not settings.user_notification_enabled or portal_membership.isAnonymousUser(): - self.widgets['user_notification'].mode = interfaces.HIDDEN_MODE + # Hide the user_notification checkbox if user notification is disabled + # or the user is not logged in. Also check if the user has a valid email + # address + if member_email == '' or \ + not settings.user_notification_enabled or \ + mtool.isAnonymousUser(): + self.widgets['user_notification'].mode = interfaces.HIDDEN_MODE def updateActions(self): super(CommentForm, self).updateActions()