def __call__(self): sub_action = self.request.get('subscribe_member', None) unsub_action = self.request.get('unsubscribe_member', None) email_action = self.request.get('subscribe_email', None) self.request.set('enable_border', True) self.errors = errors = {} logged_in_mem = self._get_logged_in_user() self.user_logged_in = False if logged_in_mem: self.user_email = lookup_email(logged_in_mem.getId(), self.context) self.user_logged_in = True else: #XXX what should this be? self.user_email = '' self.mem_list = IWriteMembershipList(self.context) # the appropriate sub_policy needs to be instantiated # depending on list type self.sub_policy = getAdapter(self.context, IUserTTWMembershipPolicy) if sub_action: self.subscribe() elif unsub_action: self.unsubscribe() elif email_action: address = self.request.get('email_address', None) if not address: errors['email_address'] = _('An email address is required') elif EMAIL_RE.match(address) is None: errors['email_address'] = _('This email address is invalid') elif self.mem_list.is_subscribed(address): errors['email_address'] = \ _('This email address is already subscribed') else: # everything is OK, send a request mail the # appropriate sub_policy needs to be instantiated # depending on list type sub_policy_for_email = getAdapter(self.context, IUserEmailMembershipPolicy) ret = sub_policy_for_email.enforce({'email':address, 'subject':'subscribe'}) if ret == MEMBERSHIP_ALLOWED: # make user a subscriber self.mem_list.subscribe(address) self.request.set('portal_status_message', 'Email subscribed') elif ret == MEMBERSHIP_DEFERRED: self.request.set('portal_status_message', 'Subscription request sent') else: self.request.set('portal_status_message', 'Bad email address') # Blank the email field to avoid the postback self.request.set('email_address', '') self.request.set('subscribe_email', '') return self.index()
def isValidEmail(self, email): """ checks for valid email """ if EMAIL_RE.search(email) == None: return 0 try: checkEmailAddress(email) except EmailAddressInvalid: return 0 else: return 1
def __call__(self): sub_action = self.request.get('subscribe_member', None) unsub_action = self.request.get('unsubscribe_member', None) email_action = self.request.get('subscribe_email', None) self.request.set('enable_border', True) self.errors = errors = {} logged_in_mem = self._get_logged_in_user() self.user_logged_in = False if logged_in_mem: self.user_email = lookup_email(logged_in_mem.getId(), self.context) self.user_logged_in = True else: #XXX what should this be? self.user_email = '' self.mem_list = IWriteMembershipList(self.context) # the appropriate sub_policy needs to be instantiated # depending on list type self.sub_policy = getAdapter(self.context, IUserTTWMembershipPolicy) if sub_action: self.subscribe() elif unsub_action: self.unsubscribe() elif email_action: address = self.request.get('email_address', None) if not address: errors['email_address'] = _('An email address is required') elif EMAIL_RE.match(address) is None: errors['email_address'] = _('This email address is invalid') elif self.mem_list.is_subscribed(address): errors['email_address'] = \ _('This email address is already subscribed') else: # everything is OK, send a request mail the # appropriate sub_policy needs to be instantiated # depending on list type sub_policy_for_email = getAdapter(self.context, IUserEmailMembershipPolicy) ret = sub_policy_for_email.enforce({'email':address, 'subject':'subscribe'}) if ret == MEMBERSHIP_ALLOWED: # make user a subscriber self.mem_list.subscribe(address) self.request.set('portal_status_message', _(u'list_email_subscribed_status_msg', u'Email subscribed')) elif ret == MEMBERSHIP_DEFERRED: self.request.set('portal_status_message', _(u'list_subscription_request_sent_status_msg', u'Subscription request sent')) else: self.request.set('portal_status_message', _(u'list_bad_email_address_status_msg', u'Bad email address')) # Blank the email field to avoid the postback self.request.set('email_address', '') self.request.set('subscribe_email', '') return self.index()