| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
tomorrow, if i finish more important things by then) we should fix the
mechanism to have a short default life, but extend it every time some
admin action is taken. But then, will that be too aggravating for the
people who have confirmation of cookie changes set in their browser?
Too bad for them, i think...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
as members. Previously set by the "DEFAULT_REMINDERS_TO_ADMINS"
option, that's now "DEFAULT_UMBRELLA_LIST". A new option,
"DEFAULT_UMBRELLA_MEMBER_ADMIN_SUFFIX", dictates the suffix appened to
the account part of the members address for administrative things like
confirmation requests and password notices. (Otherwise, they would be
delivered to the entire lists. Conversely, allowing an arbitrary
admin-notice address specified by the subscriber would open the door
for terrible chicanery, where people arbitrarily cross-subscribed
lists...)
Incremented DATA_FILE_VERSION for change.
|
| |
|
|
|
|
| |
the posters variable includes members addresses.
fixed typo in previous checkin for administrivia (setatrr instead of setattr).
scott
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is editable via the admin cgi to turn the filter on and off.
I'm sure that the filter could catch more things, but it will have
less false positives than majordomo anway :)
a listing of the specific changes follows:
Defaults.py.in changed data file version and added
DEFAULT_ADMINISTRIVIA
Utils.py added a function IsAdministrivia(msg) that does the filtering
replaced re.sub with string.replace(much faster) in
(Un)ObscureEmail.
MailList.py: added the config info for the administrivia variable, and
made the post method check it if the list has the
variable set.
versions.py: make new lists have an administrivia variable
scott
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
list members. I have yet to look at handling of -admin addresses.
Also, there is a configurable variable in Defaults.py that allows the
site admin to decide whether or not to do "smart address matching" -
where scott@chronis.pobox.com matches scott@pobox.com as the same
address (these addresses are in reality different addresses ;).
A listing of the changes to the files follows:
Defaults.py.in - added SMART_ADDRESS_MATCH variable and a short
description, defaulting to 1.
MailCommanHandler: removed string.lower(address) in
processSubscribeCmd and replaced it with
Utils.LCDomain(address)
MailList.py: made AddMember and ApprovedAddMember use
Utils.LCDomain(address) instead of string.lower(address)
Utils.py: got rid of top level domain listing and commented out
corresponding code in ValidEmail since it seems clear that
we have no intention of using this anymore.
added LCDomain(address) which lowercases only the domain
part of an address if there is a domain part.
made AddressesMatch use LCDomain instead of string.lower,
made it check LCDomain(addr1) == LCDomain(addr2) if
mm_cfg.SMART_ADDRESS_MATCH is set to 0, and do the match it
used to do if that variable is set to 1.
scott
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
was in (which was largely my fault from before).
Before:
1) web_subscribe_requires_confirmation was showing in the
admin cgi, but not working.
2) all subscribes that required admin approval were going
through the confirmation process.
3) the code implementing the confirmation process was
distributed between the subscribe cgi and
MailCommandHandler, duplicated in places and disrupting
the previous interface to list.AddMember.
4) the open_subscribe variable was confusing because
it didn't pay any attention to confirmations.
Now, things are organized a little differently, but in a much cleaner
way. there is one variable that deals with subscription policy, called
"subscribe_policy". It's setting determines what happens with both
the web based and the mail based subscriptions. there are 4 options:
0 - open subscribe policy
1 - confirmation required
2 - admin approval required
3 - confirmation and then admin approval required
there is a site configuration variable in Defaults.py called
ALLOW_OPEN_SUBSCRIBE, which determines whether or not an open
subscribe policy is an option. If it's not, the admin cgi interface
does not present it as an option.
I have restored a slightly modified version of the
prior-to-confirmations interface for list.AddMember, where all you
have to code is:
try:
list.AddMember(email, digest, password)
except Errors.MMBadEmail:
except Errors.MMAlreadySubscribed:
[ ... all those other good things it used to check ...]
except Errors.MMSubscribeNeedsConfirmation:
# the confirmation has already been sent.
# so just report accordingly to whatever the ap is.
In addition, I have moved the code for processing a confirmation
request to MailList.py so that it can be used in both a confirmation
cgi (which does not yet exist, but will) and the mailcmd script.
it's interface is:
try:
list.ProcessConfirmation(cookie)
except Errors.MMBadConfirmation:
# the cookie doesn't correspond to anything
except Errors.MMNeedApproval:
# the list is set to approve+confirm subscribe_policy.
A listing of the changes to the files follows:
Mailman/Defaults.in: added ALLOW_OPEN_SUBSCRIBE,DEFAULT_SUBSCRIBE_POLICY
deleted DEFAULT_OPEN_SUBSCRIBE, changed
DATA_FILE_VERSION to 5
Mailman/Errors.py: added MMBadConfirmation and
MMSubscribeNeedsConfirmation
Mailman/MailCommandHandler.py: moved the confirmation code to
MailList.py and use the new (old)
list.AddMember interface
MailMan/MailList.py: added .ProcessConfirmation(cookie), changed
AddMember to fit new (old) interface.
deleted config info for open_subscribe
and replaced with config info for
subscribe_policy that acts according to
mm_cfg.ALLOW_OPEN_SUBSCRIBE. Also made
list.ApprovedAddMember's "noack"
argument just "ack" for simplicities
sake and made it default to None
instead of 0 so that if the ack
variable isn't passed, it sets it to
the value of the lists
.send_welcome_msg setting.
Mailman/versions.py: added handling for new data file format,
replacing open_subscribe with a reasonable value
for subscribe_policy based on a combination of
what open_subscribe is and what
mm_cfg.ALLOW_OPEN_SUBSCRIBE is set to.
Mailman/Cgi/admin.py: made the cgi handle the output and processing of
subscribe_policy based on the setting of
mm_cfg.ALLOW_OPEN_SUBSCRIBE.
removed erroneous processing of whether or not
to send an ack with mass subscription based on
new interface to list.ApprovedAddMember (this
processing is to be replaced with a good idea
from john -- making mass subscribe have it's own
option of whether or not to send welcome
messages).
Mailman/Cgi/subscribe.py: made backgrounds white, and made it use the
MailList.AddMember interface described
above.
Mailman/Makefile.in: looks like this part of that distclean patch from
NAGY didn't make it in yet (rm'ing mm_cfg.py as well
as Defaults.py)
scott
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Original patches are from The Dragon de Monsyne with the following changes:
-added support for private archives as well as public
-added support for archiving daily and weekly
-made archiving happen in real time
-replaced use of pipermail's BSDBDatabase with homegrown python version
-took out the need for DocumentTemplate
here's a listing of changed files and relevant changes:
Makefile.in - added public_html/archives to installdirs
Mailman/Archiver.py - changed ArchiveMail to do real time archiving
Mailman/Defaults.py.in - added archive frequency and and archive url
extension variables
Mailman/MailList.py - changed .Save() to alter perms on public vs. private
archives
Mailman/htmlformat.py - changes directly from The Dragon do Monsyne's patches.
I don't know what they are exactly, but all the cgi's
seem to work fine, so I assume they are OK.
Mailman/versions.py - changes to add archiving based variables back to the list
Mailman/Cgi/private - changed to make it work with default installation and
made background white on login page
src/Makefile.in - changes to make all wrappers setuid mailman:
since various processes may access an archive, and the
archiving mechanism uses "chmod", all archives must be owned
by mailman, so all wrappers need to be owned by and setuid mailman
added files:
Mailman/HyperArch.py - from The Dragon de Monsyne with changes made noted above
Mailman/HyperDatabase.py - the replacement for pipermail.BSDBDatabase
scott
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
lines for processing. (Large, misdirected mail commands can lead to
near-thrash conditions, while the MailCommandHandler slogs through,
misguidedly trying to process many many lines...)
Starting with a value of 25 - sort of arbitrary, but it seems like
more than enough.
[Meant to check this in before the dependent change to
MailCommandsHandler.py - but first mistakenly applied the changes
directly to Defaults.py rather than Defaults.py.in.]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
interesting headers that should be kept in the plain digests. The
only potentially controversial one in my initial inclusion is
'organization', which i think can be essential on professional lists.
I'd be interested to hear whether there's any other essiantial ones i've neglected to include...
The current list is:
message
date
from
subject
to
cc
reply-to
organization
|
| | |
|
| |
|
|
|
|
|
| |
autoconf stuff. Basically, the autoconf script should fire up Python
and see if crypt can be imported. Of course, if a previous
installation has a different value than configure determined, it
should be used instead, otherwise stuff will mess up.
|
| | |
|
| |
|
|
| |
and SEND REMINDERS. Bumped the data file version up by 1.
|
| |
|
|
| |
using a number so I can easily tell if something is outdated.
|
| |
|
|
| |
cookie stuff.
|
| |
|
|
|
| |
mm_defaults.py.in: 1.0b3 -> 1.0b4
Shouldn't the version in mm_defaults be generated automatically?
|
| |
|
|
| |
'misc' => 'data'
|
| | |
|
| |
|
|
|
| |
Mailman is now sendmail independant, except that it spits out
sendmail aliases w/ newlist...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hope I merged in all the latest changes!
Added Emacs turd added to top of file.
RCS crud removed
Added PYTHON variable which holds the absolute path to the configure
discovered Python interpreter.
Added PREFIX and EXEC_PREFIX variables which hold configure's
equivalents of --prefix and --exec_prefix (module autoconf 2.12
buglet).
LIST_DATA_DIR, HTML_DIR, CGI_DIR, LOG_DIR, LOCK_DIR, WRAPPER_DIR,
SCRIPTS_DIR, TEMPLATE_DIR, PUBLIC_ARCHIVE_FILE_DIR,
PRIVATE_ARCHIVE_FILE_DIR: All moved to the bottom of this file since
users will not typically edit these or the paths they are based on any
more. All are calculated relative to PREFIX and EXEC_PREFIX as given
by configure.
VERSION is also moved to the bottom of the file. This is also
generated by configure. The nice thing here is that configure.in is
the only file that need be changed when the version number changes.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
user's corresponding "-owner" address - this is for lists that have
only other lists as members. This way, the reminders don't get
posted. (When we have scott's alternate-address confirmation stuff
integrated we may not need this, but i don't know if i'll have time to
do that before then end of the month, when the password reminders are
delivered.)
|
| |
|
|
|
|
|
| |
do so.
Added a copy of the GNU GPL.
Added information about mailman-users in README, and reworded some text in there (made the credits less verbose... perhaps they should move to a credits file?)
|
| |
|
|
| |
default message footer.
|
| |
|
|
|
| |
Changed mailman URL to point to john's site, and included a comment
explaining what it is for.
|
| |
|
|
|
| |
distributed. (I'm sticking with it as default here at python.org,
until i get complaints.)
|
| | |
|
| |
|
|
| |
whatever mail delivery agent is there.
|
| |
|
|
| |
settings.
|
| |
|
|
|
| |
messages.py file containing various notes, but mm_err will do for now
- it's certainly a better choice than mm_defaults.)
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
smtplib in the stead of sendmail. (John, i don't think i'm going to
do that immediately, though i'd like to see it done soon.)
Including MESSAGE_DECORATION_NOTE describing the useful list-instance
attributes that can be included for expansion in messages header and
footer texts.
|
| |
|
|
| |
lists.
|
| |
|
|
| |
past the explicit-destination constraint).
|
| | |
|
| |
|
|
|
|
|
|
|
| |
user account as an alternative to removal:
Option DEFAULT_MINIMUM_POST_COUNT_BEFORE_REMOVAL =>
DEFAULT_MINIMUM_POST_COUNT_BEFORE_BOUNCE_ACTION.
Option DEFAULT_AUTOMATICALLY_REMOVE => DEFAULT_AUTOMATIC_BOUNCE_ACTION.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'closed' => 'private_roster'. 'Closed' was being used to control
whether the roster of list members was to be visible to non-list
members, but is used elsewhere (in mailman explanations for
subscription deferrals, as well as in majordomo and other maillist
system parlance) to refer to whether the subscription policy requires
admin approval or not.
'auto_subscribe' => 'open_subscribe'. This is the option that
controls whether or not the list is closed - 'open' is more clear than
'auto' - i would have switched to 'closed', but saw no need to have
the name refer to the *much* less common case, and didn't want to
change the default sense of the option.
Added listme.com to the roster of forbidden spam posters.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- new vars {PUBLIC,PRIVATE}_ARCHIVE_FILE_DIR,
DEFAULT_ARCHIVE_PRIVATE, specify the location of the dirs for the
public and private archives, and the choice of which is to be used
- public is default.
- Retired archive_update_frequency stuff, retain_text_copy option
(that's now all that we retain, in the archive dir
Providing option for administrator to received immediate notice of new
pending queued requests - DEFAULT_ADMIN_IMMED_NOTIFY - defaults to
true.
Added periodic (with help of senddigest cron job) digest transmission
in addition to size-threshhold triggering, and periodic mechanism
enabled by new option DEFAULT_DIGEST_SEND_PERIODIC, by default *on*.
Enabled bounce processing by default.
Added comments to bounce_matching_headers expr, incliding a comment
explaining them in the template.
|
| |
|
|
|
|
|
|
| |
Added list address to default message footer layout, and lengthened
"horizonal rule".
Added a setting for default digest header and footer, dependent on
regular message header and footer.
|
| |
|
|
|
|
|
|
|
|
| |
bounce_matching_headers option takes a string with "field: matchexp"
lines, and, if set, messages with header fields matching matchexp are
held for approval. Leading whitespace in matchex is ignored.
new LOG_DIR setting for dir to contain log files.
removed MAIL_LOG - i also think it isn't used any more.
|
| | |
|
|
|
for setting the site-specific values for these defaults.
|