コード例 #1
0
 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__()
コード例 #2
0
    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')
コード例 #3
0
 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)
コード例 #4
0
 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'] == [])
コード例 #5
0
 def setUser(self):
     self.user = subscribe.get(self.email)