| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mark various strings as translatable.
HoldSubscription(): New parameter `lang' which is the user's preferred
language. This is stored in the pending database. Messages to the
administrator are sent in the list's preferred language, while
messages back to the user are sent in the user's preferred language.
__handlesubscription(): Pull the user's preferred language from the
held record and pass that to __refuse().
__refuse(): Pass the selected language to maketext().
|
| | |
|
| |
|
|
|
|
|
|
|
| |
database, zap the `filebase' attribute and let it be recalculated when
the message is enqueued. This fixes duplication bugs when an approved
message has delivery problems, and get re-enqueued continually with a
different filebase.
This should close SF bug #117015.
|
| |
|
|
|
|
|
|
|
| |
forwarded, we need to craft two completely separate messages for each
path through the system. They can't share msgdata state or message
text or the first will simply disappear. Hacky way of doing this is
to rewind the file pointer and re-instantiate a new message object.
Closes SF bug #116311.
|
| | |
|
| |
|
|
|
| |
broken. Set the message recips to a list to fix this. Fixes SF Bug
#108215.
|
| |
|
|
|
| |
subsequent changes won't be reflected in the request database. This
fixes Ricardo Kustner's perplexing problem.
|
| |
|
|
|
|
| |
will end up calling SaveRequestsDb() which closes the database. The
hack is to re-open the database so that the del in HandleRequest()
doesn't fail.
|
| |
|
|
|
|
|
|
|
| |
HandleRequest(): Default comment, preserve, forward, addr arguments to
None. Instead of raising LostHeldMessage() here, return LOST constant
so the pending database can maintain consistency. Also, enqueue the
message immediately instead of trying to delivery it here. This
improves performance by pushing delivery off to qrunner, and it also
helps to maintain pending database consistency.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`forward', and `addr' which are passed in from admindb.py. These
are only useful for held postings, and are only passed on to
__handlepost().
preserve is a flag that says whether the held message should be copied
to the `spam' directory or not.
forward is a flag which says that the message should be forwarded on
to an addition email address, which is contained in the addr
parameter. Both most be set for forwarding to occur.
Finally, HandleRequest() only deletes the database entry if the status
of the sub-method is true. This is to support the new `deferred' flag
for held postings.
__handlepost(): Takes the three new parameters as described above.
Uses shutil to do the `preserve' copy, and HandlerAPI.DeliverToUser()
to do the forwarding (after inserting a `Resent-To' header).
|
| |
|
|
| |
match the change in admindb.py (`subscribe' comes before `refuse').
|
| |
|
|
| |
conditionalize on dont_respond_to_post_requests.
|
| | |
|
| |
|
|
| |
preserve the unixfrom line.
|
| |
|
|
| |
after approval.
|
| |
|
|
|
|
| |
immediately with DeliverToList(), enqueue the message for later
delivery by qrunner. This vastly improves the responsiveness of the
web interface for huge lists.
|
| |
|
|
| |
Jarrell.
|
| |
|
|
|
| |
DeliverToList() will now do this automatically if any pipeline module
fails.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
HoldMessage(): Take an optional msgdata dictionary, which gets stored
along with all the other information related to this held message in
the held message database.
__handlepost(): Add some backwards compatibility code for pre 2.0b3
held message databases now that the held record can be 6 elements long
(this should really not be a length-dependent tuple). Also, use
HandlerAPI.DeliverToList() to send approved messages out, and check
the return value to see if the message needs to be enqueued.
|
| | |
|
| |
|
|
|
| |
message) might contain '%' chars, quote them before they reach
MailList.LogMsg().
|
| | |
|
| |
|
|
|
| |
HandlerAPI.DeliverToUser() for fast track delivery of the
notification messages.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of marshalled into the requests.db file. The file name will
always be $PREFIX/data/heldmsg-<listname>-<id> where <id> is the
request id integer value.
HoldMessage(): Store the message text in the heldmsg file as described
above. In the requests.db marshal, we just include the filename in
the last slot. Although this is redundant information, it makes
calculating the file name a little easier (hmm, maybe we should remove
this anyway).
__handlepost(): Watch out for the message file being removed, and
raise a LostHeldMessage in that situation. In any case, once the
message is dispatched, be sure to unlink the message file
(transforming expected exceptions into LostHeldMessage).
|
| |
|
|
|
|
| |
self.fullpath() returns a non-false value
__opendb(): assert that self.__filename is true
|
| |
|
|
|
| |
work reliably and cross platform. Instead the request.db file is a
marshal'd dictionary; a format that seems to work well for us!
|
| |
|
|
| |
sync databases.
|
| |
|
|
|
|
|
|
| |
no longer kept with the MailList object, but instead in a separate
lists/<listname>/request.db file. This means that the potentially
huge amounts of data assosicated with held messages need not be loaded
in unless administrative requests are actually being changed (added
to, handled).
|
| | |
|
| |
|
|
| |
string read from Web text box.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fix and one addition. Sorry, i realized that too late.
This change adds another list conifg variable "admin_notify_mchanges",
which is a boolean 0 or 1 and specifies whether or not the list admin
gets notifications of subscriptions and unsubscriptions.
The functions MailList.DeleteMember and MailList.ApprovedAddMember
trigger the delivery if it is turned on for the list or passed in as
an optional argument. This way, it is the duty of programs/code that
do mass subscriptions/unsubscriptions where this notification may not
be appropriate to specify that in the call to .DeleteMember or
.ApprovedAddMember.
There are 2 new templates, adminsubscribeack.txt and
adminunsubscribeack.txt which are used in sending these
notifications.
Defaults.py.in has a variable "DEFAULT_ADMIN_NOTIFY_MCHANGES" which is
set to 0 so that old lists will act the same by default, and the data
version is up'ed to 12. versions.py sets the variable if it's not
already there for a list. The config info for the admin cgi program
for this new variable is set right after the variable for immediate
notifications.
The second change is a fix where ApprovedAddMember was calling a
"self.Save()", which made mass subscribe situiations really far too
slow. I removed the .Save() from there and added it to the more outer
level code in the following places:
bin/convert_list
Mailman/ListAdmin.py
Mailman/MailCommandHandler.py
Mailman/Cgi/admin.py
Note that since AddMember can trigger a call to ApprovedAddMember, all
the places where AddMember is called needed a .Save() added as well.
I need to add a call to .Save() for Mailman/Cgi/subscribe.py as well
and will do that in a moment.
scott
|
| | |
|
| |
|
|
| |
the fact that it returns a number, and not a list of requests...
|
| | |
|
| |
|
|
|
| |
SUBSCRIPTION_AUTH_TEXT, POSTING_AUTH_TEXT moved into templates/*.txt
files
|
| |
|
|
|
| |
relative paths, mainly GetScriptURL->the appropriate replacement.
Now I'm done w/ checkins, and I'm going to test the current snapshot.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
(SUBSCRIPTION_AUTH_TEXT, POSTING_AUTH_TEXT): Some small, but important
formatting changes. The wrapping/filling algorithm says not to fill
any lines that begin with whitespace, so for the two embedded lists
that shouldn't be filled, start the lines with a couple of spaces.
RefuseRequest(): Call SendTextToUser() with raw=1 so that the text of
the original message will not be wrapped/filled. Some of the text
should probably be wrapped/filled but that's too hard to separate out
right now.
|
| | |
|
| |
|
|
|
|
|
| |
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?)
|
| |
|
|
| |
__version__ info.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
dispositions - for spam, it doesn't send email to poster, just
discards their posting.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
.AddRequest(), for admin notices.
Stop inhibiting sending of request refusal for moderated messages! (I
think this was confused with sending of request queuing, which should
be suppressed, and now is in the ../scripts/post script.)
Refined various notice's text a bit, including adding more info.
|
| |
|
|
|
|
|
|
|
|
| |
notices sent whenever a new admin request (vetted subscriptions or
list postings) arrives, in addition to daily notice.
Repair what is logged (was using list. instead of self.).
Relocate message body texts to "constants" just after imports, at the
least so they don't screw up emacs tracking of indentation levels.
|
| |
|
|
|
|
|
|
|
|
| |
pending approval in 'vette' log file (using new MailList.LogMsg()
method).
ListAdmin.HandleAddMemberRequest(): Handle (new) detection of
subscription approval of already subscribed members (eg, when
duplicate subscription requests were blanket approved in a single
subscription vetting).
|
| |
|