def __call__(self): form = self.request.form if 'code' in form and 'email' in form: email = form['email'] subscriber = subscribe.get(email) if subscriber: if subscriber.get('code') == form['code']: alsoProvides(self.request, IDisableCSRFProtection) subscribe.remove(email) self.unsubscribed = True else: self.error = 'Invalid unsubscribe url' return super(Unsubscribe, self).__call__()
def action_apply(self, action): prefix = 'form.widgets.' user = subscribe.get(self.request.form[prefix + 'email']) form = self.request.form changed_items = ['phone_number', 'name', 'categories'] for item in changed_items: if prefix + item in form: user[item] = form[prefix + item] self.widgets[item].value = form[prefix + item] else: # The categories widget isn't included if it's empty user[item] = [] self.widgets[item].value = [] self.widgets['categories'].update() api.portal.show_message('Subscription settings changed', request=self.request, type='info')
def test_category_match(self): subscribe.register('*****@*****.**', {'categories': [u'A']}) subscriber = subscribe.get('*****@*****.**') subscribe.confirm('*****@*****.**', subscriber['code']) responses.add(responses.POST, "https://www.google.com/recaptcha/api/siteverify", body='{"success": true}', content_type="application/json") self.request.form.update({ 'form.widgets.subject': u'TEST', 'form.widgets.send_to_categories': [u'A'], 'form.widgets.body': 'Words words words', 'form.widgets.body_plain': 'Words words words', 'form.buttons.send2': 'Send' }) form = SendEmailSubscribersForm(self.portal, self.request) form() mailhost = self.portal.MailHost self.assertEqual(len(mailhost.messages), 1) self.assertEquals(len(subscribe.SubscriptionStorage()._data), 1)
def test_categories(self): data = subscribe.register('*****@*****.**', {'categories': [u'A']}) subscribe.confirm('*****@*****.**', data['code']) user = subscribe.get('*****@*****.**') self.assertEquals(user['categories'], [u'A']) self.assertFalse(user['categories'] == [])
def setUser(self): self.user = subscribe.get(self.email)