| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
alternatively highlight the list rows.
|
| |
|
|
| |
alternatively highlight the list rows.
|
| | |
|
| |
|
|
| |
401452.
|
| | |
|
| |
|
|
|
|
|
|
| |
WEB_HEADERCOLOR => WEB_HEADER_COLOR
Added WEB_SUBHEADER_COLOR, WEB_ERROR_COLOR, WEB_LINK_COLOR,
WEB_ALINK_COLOR, WEB_VLINK_COLOR (the latter three after David
Champion's SF patch #401372).
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
David Champion (SF patch #401372).
add_error_message(): Default tag is now 'Error: ' which was the more
commonly used tag.
Globally, WEB_HEADERCOLOR => WEB_HEADER_COLOR
|
| |
|
|
| |
add_error_message(): Use WEB_ERROR_COLOR instead of hardcoded #ff0000
|
| |
|
|
|
|
| |
into templates/en/article.html and as_html() is modified to use the
standard maketext() call to retrieve the template and interpolate in
a dictionary of values.
|
| |
|
|
|
|
|
| |
Document(): WEB_BGCOLOR => WEB_BG_COLOR. Also, if WEB_VLINK_COLOR,
WEB_ALINK_COLOR, or WEB_LINK_COLOR are defined in mm_cfg.py (as not
false), use them in the document's BODY tag. This is an adaptation of
David Champion's SF patch #401372.
|
| |
|
|
|
| |
so that KeyboardInterrupts that percolate through are caught and
ignored.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
main(): Only lock the list during the NumRequestsPending() call. We
don't actually change the state of the list data, but the ListAdmin
interface requires the list to be locked even to read (yes, this is
bogus).
Also, fix the _() marked string to use the required
auto-interpolation.
pending_requests(): Mark some additional strings for i18n. Also,
pending subscription requests include the language in the unpacked
data (fix the tuple unpacking).
|
| | |
|
| |
|
|
|
|
|
| |
children, so they re-open their log files too.
Move the `kids' dictionary (with keys being the pids of the children),
to module global `KIDS' so sighup_handler() can have access to it.
|
| | |
|
| | |
|
| |
|
|
| |
re-opened at the next attempted write.
|
| |
|
|
|
|
|
|
|
| |
for SIGHUP to force all the log files to close and be re-opened on the
next write.
master(): Catch OSError, EINTR that can happen if a signal
(e.g. SIGHUP) is caught during the wait() system call. It's enough to
just restart the os.wait().
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cleanups we could do to this file, but there are other priorities at
the moment.
Cleaned up the imports. Removed login_attemped and _list unused
module globals. i18n setup.
main(): Set the i18n language, first to the server default, then to
the list preferred, once we have a valid list, and to the user's
preferred language once we know that. Updates for new string methods.
Removed a call to IsListInitialized() and use return instead of
sys.exit(0). Better cgidata style. Use new WebAuthenticate()
mechanisms to authenticate the user.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
is false, then scan the cookie keys for user names. This is used in
private archive authentication (which doesn't have a user context in
the url), so that if a user has already authenticated to edit their
options, they get into the private archives with no login necessary.
Note that this does /not/ open a hole for user option pages because
those have a user context in the url which is passed to CheckCookie
and must match explicitly.
__checkone(): Does one authcontext/user authentication.
|
| | |
|
| |
|
|
| |
converted to multiline strings for ease of translation.
|
| |
|
|
|
| |
in a temporary variable and check that variable against the secret
(this is so that subsequent checks have the raw password).
|
| |
|
|
|
|
|
|
| |
allowing the list-admin, list-moderator, or site-moderator access to
the admindb. Also, don't hard code the background color.
handle_no_list(): Clean this up by using Utils.ScriptURL() to give us
the url to the admin overview page.
|
| |
|
|
| |
change is a candidate for 2.0.6.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the need for the handle_opts.py script. Specifically,
main():
- Do all form processing in this script, and point the form's
action back at this script. This is so we don't need
handle_opts anymore.
- Protect access to this form behind a login screen which also
contains a password mail-back button, and a quick unsubscribe
(with confirmation) button.
- Use the new world order for web authentication, allowing
AuthUser, AuthListAdmin, and AuthSiteAdmin to access a user's
options page.
- Add a "logout" button to the option page, and remove any need to
enter passwords once we're at the options page.
- Add support for a change-of-address, including the ability to
change the membership address globally for all lists the user is
a member of (requires confirmation from the new address).
- Add support for global change of password.
- Add support for global setting of enable/disable flag, and of
password reminder flag.
- Use IsMember() to test for address membership.
Also, 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.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
requests. Specifically,
InitVars(): Add the moderator attribute, which is a list of email
addresses a la the owner attribute.
GetConfigInfo(): Added some details to the `owner' attribute
describing the different list-related roles. Also added the
`moderator' attribute and copied the description of roles to its
details too.
ChangeMemberAddress(): Added support for change-of-address. This
method simply pends the request and sends the confirmation email
to the new address (the old one is already verified by way of the web
authentication).
ApprovedChangeMemberAddress(): Effects the actual change-of-address by
adding the member, copying over the user options and the language
settings, and then removing the old address. Acknowledgements are
always sent. Handle the global change-of-address by searching for all
the matching lists (must match both host_name and have the old address
of the user as a member), and recursively calling
ApprovedChangeMemberAddress() on those lists -- with the global flag
turned off of course!
ProcessConfirmation(): Add support for CHANGE_OF_ADDRESS, which simply
unpacks the data and calls ApprovedChangeMemberAddress().
ApprovedAddMember(): Fixed a bug in the order of arguments in the call
to ApprovedAddMembers() - plural.
DeleteMember(): Fixed a bug in the i18n-marked subject text, related
to auto-interpolation.
SetPreferredLanguage(): Assert that the language we're setting to is
in the list of available languages (helped catch the
ApprovedAddMember() bug above). Also, only add
DEFAULT_SERVER_LANGUAGE if it isn't already an item in the list.
|
| |
|
|
| |
handle_opts.html is removed as obsolete.
|
| |
|
|
|
| |
worth retaining the CVS history to ask the SF maintainers to do the
move.
|