Changeset 1531

Show
Ignore:
Timestamp:
04/23/08 09:06:13 (23 months ago)
Author:
JensDiemer
Message:

EMailSystem Plugin: Don't display the input form, if the user account has no valid email address.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/pylucid/PyLucid/plugins_internal/EMailSystem/EMailSystem.py

    r1291 r1531  
    7070            raise SendMailError(_("No recipient left.")) 
    7171 
    72         sender = self._get_sender() 
     72        try: 
     73            sender = self._get_sender() 
     74        except NoValidSender, e: 
     75            self.page_msg.red(e) 
     76            return 
    7377 
    7478        try: 
     
    8589        test_sender = EMailForm({"email": self.request.user.email}) 
    8690        if not test_sender.is_valid(): 
    87             self.page_msg.red(_( 
     91            raise NoValidSender(_( 
    8892                "You can't send emails," 
    8993                " your user account has no valid email address." 
    9094            )) 
    91             return 
     95 
    9296        sender = test_sender.cleaned_data["email"] 
    9397        return sender 
     
    97101        form for sending mails to the django members. 
    98102        """ 
     103        # Change the global page title: 
     104        self.context["PAGE"].title = _("EMail system") 
     105 
    99106        if settings.ALLOW_SEND_MAILS != True: 
    100107            self.page_msg(_("Sending mails deny in your settings.py!")) 
    101108            return 
    102109 
    103         sender = self._get_sender() 
     110        try: 
     111            sender = self._get_sender() 
     112        except NoValidSender, e: 
     113            self.page_msg.red(e) 
     114            return 
    104115 
    105116        if self.request.method == 'POST': 
     
    125136class SendMailError(Exception): 
    126137    pass 
     138 
     139class NoValidSender(Exception): 
     140    """ The current User has no vaild email address in account data. """ 
     141    pass