~barry/mailman/events-and-web

« back to all changes in this revision

Viewing changes to src/mailman/model/docs/registration.rst

  • Committer: Barry Warsaw
  • Date: 2012-11-25 20:48:08 UTC
  • Revision ID: barry@list.org-20121125204808-g0pvuil2xq559k4p
Interim commit for refactoring out web-centric logic.

* Use SubscriptionEvent to handle the sending of the welcome message.
* Use ConfirmationNeededEvent to send the confirmation message.
* For now, hard code the adminurl and comment out the listinfo_uri.
* Pend the list-id instead of the fqdn-listname
* Use the new configuration support for Postfix settings.
* Get rid of the IDomain's url_host, base_url, and scheme attributes, as well
  as the confirm_url() method. 
* Get rid of the IMailingList's script_url() method.

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
be verified before Mailman will send them any list traffic.
9
9
 
10
10
The ``IUserManager`` manages users, but it does so at a fairly low level.
11
 
Specifically, it does not handle verifications, email address syntax validity
12
 
checks, etc.  The ``IRegistrar`` is the interface to the object handling all
13
 
this stuff.
 
11
Specifically, it does not handle verification, email address syntax validity
 
12
checks, etc.  The ``IRegistrar`` is the interface for these higher level
 
13
functions.
14
14
 
15
15
    >>> from mailman.interfaces.registrar import IRegistrar
16
16
    >>> from zope.component import getUtility
24
24
    ...     assert token.isalnum(), 'Not alphanumeric'
25
25
    ...     print 'ok'
26
26
 
27
 
Here is a helper function to extract tokens from confirmation messages.
28
 
 
29
 
    >>> import re
30
 
    >>> cre = re.compile('http://lists.example.com/confirm/(.*)')
31
 
    >>> def extract_token(msg):
32
 
    ...     mo = cre.search(msg.get_payload())
33
 
    ...     return mo.group(1)
34
 
 
35
 
 
36
 
Invalid email addresses
37
 
=======================
38
 
 
39
27
Addresses are registered within the context of a mailing list, mostly so that
40
28
confirmation emails can come from some place.  You also need the email
41
29
address of the user who is registering.
42
30
 
43
31
    >>> mlist = create_list('alpha@example.com')
44
 
    >>> mlist.send_welcome_message = False
 
32
 
 
33
 
 
34
Basic address validity
 
35
======================
45
36
 
46
37
Some amount of sanity checks are performed on the email address, although
47
38
honestly, not as much as probably should be done.  Still, some patently bad
48
39
addresses are rejected outright.
49
40
 
50
 
    >>> registrar.register(mlist, '')
 
41
    >>> registrar.register(mlist, 'bad@address')
51
42
    Traceback (most recent call last):
52
43
    ...
53
44
    InvalidEmailAddressError
54
 
    >>> registrar.register(mlist, 'some name@example.com')
55
 
    Traceback (most recent call last):
56
 
    ...
57
 
    InvalidEmailAddressError: some name@example.com
58
 
    >>> registrar.register(mlist, '<script>@example.com')
59
 
    Traceback (most recent call last):
60
 
    ...
61
 
    InvalidEmailAddressError: <script>@example.com
62
 
    >>> registrar.register(mlist, '\xa0@example.com')
63
 
    Traceback (most recent call last):
64
 
    ...
65
 
    InvalidEmailAddressError: \xa0@example.com
66
 
    >>> registrar.register(mlist, 'noatsign')
67
 
    Traceback (most recent call last):
68
 
    ...
69
 
    InvalidEmailAddressError: noatsign
70
 
    >>> registrar.register(mlist, 'nodom@ain')
71
 
    Traceback (most recent call last):
72
 
    ...
73
 
    InvalidEmailAddressError: nodom@ain
74
45
 
75
46
 
76
47
Register an email address