| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
options page features, including ability to change your address,
global changes to passwords and enable/disable, password reminders,
etc.
|
| |
|
|
| |
moved to the options.py file.
|
| | |
|
| |
|
|
| |
updated to include the mod_password and moderator attributes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
authorization contexts and the roles of User, List Owner, List
Moderator, (List) Creator/Destroyer, Site Administrator.
Specifically,
InitVars(): Add a mod_password attribute that can contain the sha
hashed list moderator's password.
ValidAdminPassword(), ConfirmAdminPassword(): Removed as obsolete.
AuthContextInfo(): Given an authorization context, and optionally a
user (if authcontext == AuthUser), return the context's secret and
cookie key. The tuple (None, None) is returned if the authcontext is
bogus. MMNotAMemberError is raised if the user isn't a member of the
list, and MMBadUserError is raised if the user's secret is None.
Authenticate(): The non-web way of doing authentication. Takes a list
of allowed authcontexts (and optionally a user name if AuthUser is one
of those contexts), and a response string (i.e. password). Returns
the authcontext from the argument sequence that matches the response,
or UnAuthorized if none of them did.
WebAuthenticate(): The web way of doing authentication. The arguments
are the same as Authenticate(), but first the cookie data is checked.
If that fails, then Authenticate() is used. Returns a flag indicating
whether authentication succeeded or not.
MakeCookie(): Now takes an authcontext and optionally a user (required
if authcontext is AuthUser). Generates a cookie item for this
context.
ZapCookie(): Now takes an authcontext and optionally a user (required
if authcontext is AuthUser). Generates an empty cookie item for this
context, effectively logging out that authcontext.
CheckCookie(): Now takes an authcontext and optionally a user (required
if authcontext is AuthUser). Returns a flag indicating whether the
authcontext's cookie matches the expected value, i.e. whether they are
cookie authenticated or not.
ChangeUserPassword(): Remove the test for IsListInitialized(), and
removed the Save() call, since all paths to this method should be
wrapped in the standard lock-modify-save-unlock fence.
|
| |
|
|
|
| |
contains the "tomoderators" key, sent the message to both the list
owners and the list moderators.
|
| |
|
|
|
|
|
|
|
| |
to come from the list owner to avoid any unnecessary bounce
processing.
Also, and more importantly, set the message's metadata "tomoderators"
flag so that the admin notification message will be sent to both the
list owners and the list moderators.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
this isn't a web auth, we just use Authenticate() and pass in the
appropriate authcontext.
In this case, we're allowing either the list moderator or the list
owner to approve messages. We're specifically /not/ allowing the site
administrator in order to reduce the urge to send the site password
through email in the clear.
Also, accept either "Approved: password" or "Approve: password"
headers.
|
| |
|
|
|
| |
document background color as an argument anymore. Other colors are no
longer hardcoded, but taken from mm_cfg.
|
| |
|
|
|
|
|
|
| |
mlist.WebAuthenticate() and passing in the authentication contexts.
In this case when the roster is private to members, the authcontext is
the AuthUser, AuthListModerator, AuthListAdmin, and AuthSiteAdmin.
When the context is list-admin only, then the authcontext is
AuthListModerator, AuthListAdmin, and AuthSiteAdmin.
|
| |
|
|
|
|
|
|
|
|
| |
the document background color as an argument anymore. Other colors
are no longer hardcoded, but taken from mm_cfg.
process_request(): Use the new world order for authentication, by
using mlist.WebAuthenticate() and passing in the authentication
contexts. In this case the AuthCreator, AuthListAdmin, and
AuthSiteAdmin can all delete lists.
|
| |
|
|
|
| |
argument anymore. Other colors are no longer hardcoded, but taken
from mm_cfg.
|
| |
|
|
|
| |
color as an argument anymore. Other colors are no longer hardcoded,
but taken from mm_cfg.
|
| |
|
|
|
| |
the document background color as an argument anymore. Other colors
are no longer hardcoded, but taken from mm_cfg.
|
| |
|
|
|
|
| |
argument to Format() anymore.
success(): Handle the the new CHANGE_OF_ADDRESS confirmable action.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
use Auth.authentication() anymore because mlist.WebAuthenticate() now
does the job nicely, with all the acceptable authentication contexts
passed as an argument.
Also, when logging out, ZapCookie() takes an authentication context
(in this case it's AuthListAdmin).
main(), admin_overview(), option_help(), show_variables(),
add_options_table_item(), membership_options(), submit_button(): We
don't need to pass the document background color as an argument
anymore. Other colors are no longer hardcoded, but taken from mm_cfg.
show_results(): Small change to admindb link text; these are called
moderator requests now.
password_inputs(): Change this section so that it prompts for both
changes to the list owner passwords, and the list moderator
passwords, the latter of which gains access only to the pending
requests page.
change_options(): Because we no longer require the admin password in
order to change the password (because it would have had to have been
supplied in order to even get here), we can simplify the password
change processing. We also need to add the moderator password change
processing, and this should happen before the list owner password
change processing, because the latter requires that the authorization
cookie be regenerated.
|
| | |
|
| |
|
|
|
| |
main(): Use the new world order for sending a message (i.e. not
through HandlerAPI). Also, do the mlist.Save() in the try: block.
|
| | |
|
| | |
|
| |
|
|
|
| |
authenticate(): This is removed as obsolete because of the new
authentication scheme.
|
| |
|
|
|
|
|
| |
template is now in admlogin.html instead of admlogin.txt. If the
scriptname is "admindb", then we're asking for the list-moderators
password (although the list owner's password will still work of
course).
|
| |
|
|
|
|
|
|
|
|
|
|
| |
mm_cfg.WEB_BGCOLOR.
Document.set_bgcolor(): New method to set the bgcolor attribute.
Document.Format(): Add self.bgcolor to the kws dictionary if it isn't
already there (i.e. allow it to be overridden by the caller). This
means that we don't need to pass the background color in the Format()
call for most cases. Cleans up the code and parameterizes the
background color for site customization.
|
| |
|
|
|
| |
ValueError too. This can happen if there's a typo in the template
such that a bogus format character appears (e.g. %(blah)y).
|
| |
|
|
|
|
|
|
| |
Specifically,
CHANGE_OF_ADDRESS: new constant for this type of confirmable request.
new(): Add CHANGE_OF_ADDRESS to the assert.
|
| |
|
|
|
|
|
|
|
|
| |
the subscription request email should appear to come from the -owner
not the -admin to avoid unnecessary bounce processing.
Also, because this message is part of the pending moderation requests
(i.e. a moderator can approve or disapprove a subscription request),
set the message metadata key "tomoderators" so that the message will
be delivered to both the list owners and the list moderators.
|
| |
|
|
|
|
|
|
| |
value to 'remind'.
FormatDisabledNotice(): Cleaned up the text message by using
multi-line strings and string interpolation. This should also improve
the ability for these messages to be translated into Japanese.
|
| |
|
|
|
|
|
|
| |
believe all calls to SetUserDigest() should be wrapped in the standard
lock-munge-save-unlock fences. If not, they should be!
This should radically improve performance when many of these calls are
made sequentially.
|
| |
|
|
|
|
|
|
|
| |
in the userpass.txt notification. Change the 'adminaddr' key to
'owneraddr' since we want them to contact the list-owner@ with
questions, not the list-admin@ (which does bounce processing).
Also, sent the message as if it were coming from the -admin address
not the -request address.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
web UI colors:
WEB_BGCOLOR
WEB_HEADERCOLOR
WEB_ADMINITEM_COLOR
WEB_ADMINPW_COLOR
ADMIN_COOKIE_LIFE is removed. We now only support session cookies.
New authentication role variables:
UnAuthorized
AuthUser
AuthCreator
AuthListAdmin
AuthListModerator
AuthSiteAdmin
With an explanation of what each role is for. Code will glom together
sequences of authentication roles when they want to do a
web-authentication. This essentially specifies which
passwords/cookies will be accepted for a particular task.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
catalogs" (ordinarily not necessary by most users).
.po.mo: fixed reversed argument order
%/LC_MESSAGES/mailman.mo: rule wasn't needed since the .po.mo rule
%does the trick.
|
| |
|
|
|
|
|
| |
be 'date'. I don't usually like touching pipermail, but in this case, the
pain is minimal.
Closes SF bug #426002.
|
| |
|
|
|
|
|
|
| |
literals together with ##. That's not what ## is for; ## is to glue together
stringified versions of tokens. The fact that it worked was a bug in GCC.
Thanx to Jeff Dairiki for reminding me to take care of this.
This fixes SF bug #227694.
|
| |
|
|
|
|
|
|
|
| |
globs. (BSD 'make' does not, GNU make does.) I'm sure there is a more
satisfying way to do this, but in this case, with only two alternatives in
only two cases, just writing them out was the way of least resistance.
Also added '-f' to a few 'rm's to avoid warning about ignored errors
(missing files).
|
| |
|
|
|
|
|
|
|
|
|
| |
suppressed reminders for a particular list. The user will have to
disable reminders for all lists they are members of if they really
don't want to get any such messages.
mail_passwords(): Convert away from the old-style HandlerAPI mechanism
of sending the reminder message.
Also, de-string-module-ification.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
reminder for this list.
IMPORTANT: THIS TEXT NEEDS TRANSLATION.
Widen the personal options table to 100% (still not sure about this
one -- it was 80%, but it didn't look good not centered).
Switch the order of the "Don't receive my own mail" buttons. It was
confusing that this was the only one that was ordered "Yes" then
"No".
ALSO: Un DOS-ified this file; line endings should be Unix-style
only, i.e. \n not \r\n.
|
| |
|
|
|
|
|
|
|
|
|
| |
reminder for this list.
Widen the personal options table to 100% (still not sure about this
one -- it was 80%, but it didn't look good not centered).
Switch the order of the "Don't receive my own mail" buttons. It was
confusing that this was the only one that was ordered "Yes" then
"No".
|
| |
|
|
|
|
| |
password reminder for this list. Support is added for
<mm-dont-get-password-reminder-button> and
<mm-get-password-reminder-button> replacements.
|
| | |
|
| |
|
|
| |
through to the enqueue() method.
|
| | |
|
| |
|
|
| |
list of available languages.
|
| |
|
|
| |
user option.
|
| |
|
|
|
|
| |
to suppress password reminders for this list only. If they turn this
option on for all lists in a virtual domain, they will not get the
password reminder email at all.
|
| | |
|