def test_subscribe_validates_email(self): user_emails = ['something'] form = ListSubscribe(user_emails, { 'email' : 'something', 'display_name' : 'Someone', }) self.assertFalse(form.is_valid())
def post(self, request, list_id): """ Subscribes an email address to a mailing list via POST and redirects to the `list_summary` view. """ try: user_emails = EmailAddress.objects.filter( user=request.user, verified=True).order_by( "email").values_list("email", flat=True) form = ListSubscribe(user_emails, request.POST) if form.is_valid(): email = request.POST.get('email') response = self.mailing_list.subscribe( email, pre_verified=True, pre_confirmed=True) if (type(response) == dict and response.get('token_owner') == 'moderator'): messages.success( request, _('Your subscription request has been' ' submitted and is waiting for moderator' ' approval.')) else: messages.success(request, _('You are subscribed to %s.') % self.mailing_list.fqdn_listname) else: messages.error(request, _('Something went wrong. Please try again.')) except MailmanApiError: return utils.render_api_error(request) except HTTPError as e: messages.error(request, e.msg) return redirect('list_summary', self.mailing_list.list_id)
def test_subscribe_fails(self): user_emails = ['*****@*****.**'] form = ListSubscribe(user_emails, { 'email' : 'notaemail', 'display_name' : 'Someone', }) self.assertFalse(form.is_valid())
def post(self, request, list_id): """ Subscribes an email address to a mailing list via POST and redirects to the `list_summary` view. """ try: user_addresses = [request.user.email] + request.user.other_emails form = ListSubscribe(user_addresses, request.POST) if form.is_valid(): email = request.POST.get('email') response = self.mailing_list.subscribe( email, pre_verified=True, pre_confirmed=True) if (type(response) == dict and response.get('token_owner') == 'moderator'): messages.success( request, _('Your subscription request has been' ' submitted and is waiting for moderator' ' approval.')) else: messages.success(request, _('You are subscribed to %s.') % self.mailing_list.fqdn_listname) else: messages.error(request, _('Something went wrong. Please try again.')) except MailmanApiError: return utils.render_api_error(request) except HTTPError as e: messages.error(request, e.msg) return redirect('list_summary', self.mailing_list.list_id)
def test_subscribe_validates_email(self): user_emails = ['something'] form = ListSubscribe(user_emails, { 'email': 'something', 'display_name': 'Someone', }) self.assertFalse(form.is_valid())
def post(self, request, list_id): try: user_emails = [request.user.email] + request.user.other_emails form = ListSubscribe(user_emails, request.POST) # Find the currently subscribed email old_email = None for address in user_emails: try: self.mailing_list.get_member(address) except ValueError: pass else: old_email = address break # no need to test more addresses assert old_email is not None if form.is_valid(): email = form.cleaned_data['email'] if old_email == email: messages.error(request, _('You are already subscribed')) else: self.mailing_list.unsubscribe(old_email) # Since the action is done via the web UI, no email # confirmation is needed. self.mailing_list.subscribe(email, pre_confirmed=True) messages.success(request, _('Subscription changed to %s') % email) else: messages.error(request, _('Something went wrong. Please try again.')) except MailmanApiError: return utils.render_api_error(request) except HTTPError as e: messages.error(request, e.msg) return redirect('list_summary', self.mailing_list.list_id)
def test_subscribe_fails(self): user_emails = ['*****@*****.**'] form = ListSubscribe(user_emails, { 'email': 'notaemail', 'display_name': 'Someone', }) self.assertFalse(form.is_valid())
def test_subscribe_works(self): user_emails = ['*****@*****.**'] form = ListSubscribe(user_emails, { 'email': '*****@*****.**', 'display_name': 'Someone' }) self.assertTrue(form.is_valid())
def get(self, request, list_id): data = {'list': self.mailing_list, 'userSubscribed': False, 'subscribed_address': None, 'public_archive': False, 'hyperkitty_enabled': False} if self.mailing_list.settings['archive_policy'] == 'public': data['public_archive'] = True if ('hyperkitty' in settings.INSTALLED_APPS and 'hyperkitty' in self.mailing_list.archivers and self.mailing_list.archivers['hyperkitty']): data['hyperkitty_enabled'] = True if request.user.is_authenticated(): user_emails = EmailAddress.objects.filter( user=request.user, verified=True).order_by( "email").values_list("email", flat=True) for address in user_emails: try: self.mailing_list.get_member(address) except ValueError: pass else: data['userSubscribed'] = True data['subscribed_address'] = address break # no need to test more addresses data['subscribe_form'] = ListSubscribe(user_emails) else: user_emails = None return render(request, 'postorius/lists/summary.html', data)
def post(self, request, list_id): try: user_emails = EmailAddress.objects.filter( user=request.user, verified=True).order_by("email").values_list("email", flat=True) form = ListSubscribe(user_emails, request.POST) # Find the currently subscribed email old_email = None for address in user_emails: try: self.mailing_list.get_member(address) except ValueError: pass else: old_email = address break # no need to test more addresses assert old_email is not None if form.is_valid(): email = form.cleaned_data['email'] if old_email == email: messages.error(request, _('You are already subscribed')) else: self.mailing_list.unsubscribe(old_email) # Since the action is done via the web UI, no email # confirmation is needed. response = self.mailing_list.subscribe(email, pre_confirmed=True) if (type(response) == dict and response.get('token_owner') == 'moderator'): messages.success( request, _('Your request to change the email for' ' this subscription was submitted and' ' is waiting for moderator approval.')) else: messages.success( request, _('Subscription changed to %s') % email) else: messages.error(request, _('Something went wrong. Please try again.')) except HTTPError as e: messages.error(request, e.msg) return redirect('list_summary', self.mailing_list.list_id)
def get(self, request, list_id): data = {'list': self.mailing_list, 'userSubscribed': False, 'subscribed_address': None} if request.user.is_authenticated(): user_emails = [request.user.email] + request.user.other_emails for address in user_emails: try: self.mailing_list.get_member(address) except ValueError: pass else: data['userSubscribed'] = True data['subscribed_address'] = address break # no need to test more addresses data['subscribe_form'] = ListSubscribe(user_emails) else: user_emails = None return render(request, 'postorius/lists/summary.html', data)
def get(self, request, list_id): data = { 'list': self.mailing_list, 'user_subscribed': False, 'subscribed_address': None, 'public_archive': False, 'hyperkitty_enabled': False } if self.mailing_list.settings['archive_policy'] == 'public': data['public_archive'] = True if getattr(settings, 'TESTING', False) and \ 'hyperkitty' not in settings.INSTALLED_APPS: # avoid systematic test failure when HyperKitty is installed # (missing VCR request, see below). list(self.mailing_list.archivers) if ('hyperkitty' in settings.INSTALLED_APPS and 'hyperkitty' in self.mailing_list.archivers and self.mailing_list.archivers['hyperkitty']): data['hyperkitty_enabled'] = True if request.user.is_authenticated(): user_emails = EmailAddress.objects.filter( user=request.user, verified=True).order_by("email").values_list("email", flat=True) pending_requests = [r['email'] for r in self.mailing_list.requests] for address in user_emails: if address in pending_requests: data['user_request_pending'] = True break try: self.mailing_list.get_member(address) except ValueError: pass else: data['user_subscribed'] = True data['subscribed_address'] = address break # no need to test more addresses data['subscribe_form'] = ListSubscribe(user_emails) else: user_emails = None data['anonymous_subscription_form'] = ListAnonymousSubscribe() return render(request, 'postorius/lists/summary.html', data)
def test_subscribe_validates_email(self): user_emails = ["something"] form = ListSubscribe(user_emails, {"email": "something", "display_name": "Someone"}) self.assertFalse(form.is_valid())
def test_subscribe_fails(self): user_emails = ["*****@*****.**"] form = ListSubscribe(user_emails, {"email": "notaemail", "display_name": "Someone"}) self.assertFalse(form.is_valid())
def post(self, request, list_id): """ Subscribes an email address to a mailing list via POST and redirects to the `list_summary` view. """ try: user_emails = EmailAddress.objects.filter( user=request.user, verified=True).order_by( "email").values_list("email", flat=True) form = ListSubscribe(user_emails, request.POST) if form.is_valid(): email = request.POST.get('email') display_name = request.POST.get('display_name') link = request.POST.get('link') is_woman = request.POST.get('is_woman') is_woman_in_tech = request.POST.get('is_woman_in_tech') accepted_terms = request.POST.get('accepted_terms') country = request.POST.get('country') city = request.POST.get('city') essay = request.POST.get('essay') essay_subscribe = EssaySubscribe() # Store the values entered by the user in model class EssaySubscribe. essay_subscribe.list_id = list_id essay_subscribe.email = email essay_subscribe.display_name = display_name essay_subscribe.link = link essay_subscribe.essay = essay essay_subscribe.city = city if is_woman == 'Yes': print "afafafafaf" essay_subscribe.is_woman = True else: essay_subscribe.is_woman = False if is_woman_in_tech == 'Yes': essay_subscribe.is_woman_in_tech = True else: essay_subscribe.is_woman_in_tech = False if accepted_terms == 'on': essay_subscribe.accepted_terms = True essay_subscribe.country = country essay_subscribe.save() response = self.mailing_list.subscribe( email, pre_verified=True, pre_confirmed=True) if (type(response) == dict and response.get('token_owner') == 'moderator'): messages.success( request, _('Your subscription request has been' ' submitted and is waiting for moderator' ' approval.')) else: messages.success(request, _('You are subscribed to %s.') % self.mailing_list.fqdn_listname) else: messages.error(request, _('Something went wrong. Please try again.')) except HTTPError as e: messages.error(request, e.msg) return redirect('list_summary', self.mailing_list.list_id)
def test_subscribe_works(self): user_emails = ['*****@*****.**'] form = ListSubscribe(user_emails, {'email': '*****@*****.**', 'display_name': 'Someone'}) self.assertTrue(form.is_valid())