diff options
| author | klm | 1998-03-29 03:53:11 +0000 |
|---|---|---|
| committer | klm | 1998-03-29 03:53:11 +0000 |
| commit | 19b596f19ea0ab9cfbc7b7c46283df577815ee30 (patch) | |
| tree | 3d63d8dc3867db1a9288ac69eab77252b2b4d849 | |
| parent | b98ae232a0cdb4b47d197d3666113c5513eaa1f6 (diff) | |
| download | mailman-19b596f19ea0ab9cfbc7b7c46283df577815ee30.tar.gz mailman-19b596f19ea0ab9cfbc7b7c46283df577815ee30.tar.zst mailman-19b596f19ea0ab9cfbc7b7c46283df577815ee30.zip | |
Untangled subscription confirmation cases.
| -rw-r--r-- | Mailman/MailList.py | 50 | ||||
| -rw-r--r-- | modules/maillist.py | 50 |
2 files changed, 56 insertions, 44 deletions
diff --git a/Mailman/MailList.py b/Mailman/MailList.py index d26589c9c..0c64d65fa 100644 --- a/Mailman/MailList.py +++ b/Mailman/MailList.py @@ -173,6 +173,11 @@ class MailList(MailCommandHandler, HTMLFormatter, Deliverer, ListAdmin, ('info', mm_cfg.Text, (7, 65), 0, 'An informational paragraph about the list'), + # NOTES: The text will be treated as html *except* that + # newlines will be translated to <br> - so you can use links, + # preformatted text, etc, but don't put in carriage returns + # except where you need them. And review your changes - bad + # html (like an unclosed quote) can mess up the entire page. ('subject_prefix', mm_cfg.String, 10, 0, 'Subject line prefix - to distinguish list messages in ' @@ -381,31 +386,32 @@ class MailList(MailCommandHandler, HTMLFormatter, Deliverer, ListAdmin, self.IsListInitialized() # Remove spaces... it's a common thing for people to add... name = string.join(string.split(string.lower(name)), '') + # Validate the e-mail address to some degree. if not mm_utils.ValidEmail(name): - raise mm_err.MMBadEmailError + raise mm_err.MMBadEmailError if self.IsMember(name): - raise mm_err.MMAlreadyAMember - if not digest: - if not self.nondigestable: - raise mm_err.MMMustDigestError - if (self.open_subscribe and web_subscribe and - self.web_subscribe_requires_confirmation): - if self.web_subscribe_requires_confirmation == 1: - raise mm_err.MMWebSubscribeRequiresConfirmation - else: - self.AddRequest('add_member', digest, name, password) - elif self.open_subscribe: - self.ApprovedAddMember(name, password, digest) - else: - self.AddRequest('add_member', digest, name, password) - else: - if not self.digestable: - raise mm_err.MMCantDigestError - if self.open_subscribe: - self.ApprovedAddMember(name, password, digest) - else: - self.AddRequest('add_member', digest, name, password) + raise mm_err.MMAlreadyAMember + + if digest and not self.digestable: + raise mm_err.MMCantDigestError + elif not digest and not self.nondigestable: + raise mm_err.MMMustDigestError + + if self.open_subscribe: + if (web_subscribe and self.web_subscribe_requires_confirmation): + if self.web_subscribe_requires_confirmation == 1: + # Requester confirmation required. + raise mm_err.MMWebSubscribeRequiresConfirmation + else: + # Admin approval required. + self.AddRequest('add_member', digest, name, password) + else: + # No approval required. + self.ApprovedAddMember(name, password, digest) + else: + # Blanket admin approval requred... + self.AddRequest('add_member', digest, name, password) def ApprovedAddMember(self, name, password, digest): if self.IsMember(name): diff --git a/modules/maillist.py b/modules/maillist.py index d26589c9c..0c64d65fa 100644 --- a/modules/maillist.py +++ b/modules/maillist.py @@ -173,6 +173,11 @@ class MailList(MailCommandHandler, HTMLFormatter, Deliverer, ListAdmin, ('info', mm_cfg.Text, (7, 65), 0, 'An informational paragraph about the list'), + # NOTES: The text will be treated as html *except* that + # newlines will be translated to <br> - so you can use links, + # preformatted text, etc, but don't put in carriage returns + # except where you need them. And review your changes - bad + # html (like an unclosed quote) can mess up the entire page. ('subject_prefix', mm_cfg.String, 10, 0, 'Subject line prefix - to distinguish list messages in ' @@ -381,31 +386,32 @@ class MailList(MailCommandHandler, HTMLFormatter, Deliverer, ListAdmin, self.IsListInitialized() # Remove spaces... it's a common thing for people to add... name = string.join(string.split(string.lower(name)), '') + # Validate the e-mail address to some degree. if not mm_utils.ValidEmail(name): - raise mm_err.MMBadEmailError + raise mm_err.MMBadEmailError if self.IsMember(name): - raise mm_err.MMAlreadyAMember - if not digest: - if not self.nondigestable: - raise mm_err.MMMustDigestError - if (self.open_subscribe and web_subscribe and - self.web_subscribe_requires_confirmation): - if self.web_subscribe_requires_confirmation == 1: - raise mm_err.MMWebSubscribeRequiresConfirmation - else: - self.AddRequest('add_member', digest, name, password) - elif self.open_subscribe: - self.ApprovedAddMember(name, password, digest) - else: - self.AddRequest('add_member', digest, name, password) - else: - if not self.digestable: - raise mm_err.MMCantDigestError - if self.open_subscribe: - self.ApprovedAddMember(name, password, digest) - else: - self.AddRequest('add_member', digest, name, password) + raise mm_err.MMAlreadyAMember + + if digest and not self.digestable: + raise mm_err.MMCantDigestError + elif not digest and not self.nondigestable: + raise mm_err.MMMustDigestError + + if self.open_subscribe: + if (web_subscribe and self.web_subscribe_requires_confirmation): + if self.web_subscribe_requires_confirmation == 1: + # Requester confirmation required. + raise mm_err.MMWebSubscribeRequiresConfirmation + else: + # Admin approval required. + self.AddRequest('add_member', digest, name, password) + else: + # No approval required. + self.ApprovedAddMember(name, password, digest) + else: + # Blanket admin approval requred... + self.AddRequest('add_member', digest, name, password) def ApprovedAddMember(self, name, password, digest): if self.IsMember(name): |
