summaryrefslogtreecommitdiff
path: root/src/mailman/interfaces
Commit message (Collapse)AuthorAgeFilesLines
...
* Some corner case tests.Barry Warsaw2009-12-281-0/+1
|
* * Leave a mailing list via the REST API.Barry Warsaw2009-12-282-0/+35
| | | | | | * delete_member(): If the address is not associated with a member, raise NotAMemberError. * NotAMemberError -> interfaces/member.py
* * Add REST interface for joining a mailing list.Barry Warsaw2009-12-286-6/+86
| | | | | | * add_member() now returns the newly created IMember. * Reorganized several exceptions and exposed them to the REST API. * Added NoSuchListError.
* Add REST API for subscription services.Barry Warsaw2009-12-272-0/+59
|
* IRegistrar is now a utility; it doesn't need to be adapted from an IDomain.Barry Warsaw2009-12-121-9/+0
| | | | | | | This is because registration confirmation messages must come from the mailing list that the subscription request came from. Remove IDomain.confirm_address() since this lives only on the IMailingList now.
* IRegistrar.register() now requires a mailing list argument. This fixes theBarry Warsaw2009-12-101-2/+7
| | | | problem where the confirmation message doesn't know where to come from.
* * Refactor the language manager off of the config object and into a utility.Barry Warsaw2009-12-101-0/+3
| | | | | | | | * Fix a few small typos in exception handlers. * Move the initialization of the Zope Component Architecture into the first initialization step. The only reason we couldn't do that previously was because the domain object referenced the config, causing a circularity problem. Refactor the Domain implementation to avoid that.
* Add a 'name' attribute to the Switchboards. This is so 'whichq' can be setBarry Warsaw2009-12-101-1/+4
| | | | for bin/mailman unshunt.
* * Make IDomainManager a utility, since the config object is global.Barry Warsaw2009-12-081-1/+3
| | | | | | | | * Give IMailingList a .domain attribute which looks up the IDomain for its .host_name. This cleans up a lot of code. * Add a test for the 'confirm' email command. * Suppress blank lines in email command responses. * Make the IDomainCollection a utility.
* Add tests for -leave with one of your alternative addresses.Barry Warsaw2009-12-061-3/+5
|
* Convert bin/genaliases to bin/mailman aliasesBarry Warsaw2009-11-281-2/+7
|
* Factor out most of the i18n subsystem and convert to using the flufl.i18nBarry Warsaw2009-11-153-3/+3
| | | | package.
* Branch mergeBarry Warsaw2009-11-031-7/+1
|\
| * database/model reorganization. Model classes go in mailman.model. StockBarry Warsaw2009-10-101-7/+1
| | | | | | | | | | database support goes in mailman.database. Move stuff out of mailman/database/__init__.py.
* | smtp_direct.py is dead and gone.Barry Warsaw2009-11-031-0/+11
| |
* | IMailTransportAgentDelivery.deliver() returns a dictionary just likeBarry Warsaw2009-10-311-0/+2
| | | | | | | | | | | | | | | | | | SMTP.sendmail(). Handle SMTPRecipientsRefused just like smtp_direct.py. Hack the test mail server to be able to generate failures. SMTP responses must be bytes (don't forget we're using unicode literals).
* | The bulk delivery chunking algorithm.Barry Warsaw2009-10-191-1/+7
| |
* | IMailTransportAgent -> IMailTransportAgentAliasesBarry Warsaw2009-10-181-3/+25
|/ | | | Add IMailTransportAgentDelivery and begin to flesh out the doctest.
* As before, replace config.db.requests and config.db.pendings with utilities.Barry Warsaw2009-08-261-3/+0
|
* Replace the message_store instance on the database with an IMessageStoreBarry Warsaw2009-08-261-3/+0
| | | | utility.
* Remove the user_manager attribute from config.db and expose it as anBarry Warsaw2009-08-261-3/+0
| | | | IUserManager utility.
* Instead of using an adapter, use a utility to get the mailing list manager.Barry Warsaw2009-08-261-3/+0
|
* Refactor the subcommands so that the infrastructure does more of the menialBarry Warsaw2009-08-161-2/+6
| | | | | | | tasks. This also let's the bin/mailman command sort its subcommands for help printing. Add the outline of a 'members' subcommand.
* bin/mailman help as an alias for bin/mailman --helpBarry Warsaw2009-08-091-1/+3
|
* A start on the 'mailman' subcommand layout, with the help of argparse. RightBarry Warsaw2009-08-091-2/+17
| | | | | | | | | | | | | now the only subcommand is 'lists' which displays all mailing lists like the old bin/list_lists command did (which is now removed). Remove bin/version since 'bin/mailman --version' does this for us. Simplify the calculation of the bin scripts; there will be many fewer of them. Extend i18n to use a class based structure. By default, all i18n strings are dedented after translation and substitution, which improves command line help. The class structure allows for overriding this behavior.
* Fix some urls returned by the api. Instead of 'mailing_lists' use 'lists'.Barry Warsaw2009-08-071-1/+4
| | | | | Also, extend the ListManager so that it implements IResolvePathNames, so that it can get() sub-mailing lists.
* Fix the turning of application level exceptions into HTTP 400 errors, throughBarry Warsaw2009-08-061-1/+2
| | | | | | the improvement of the publication's handleException() method. Pick some lint in traverse.py.
* Whitespace cleanupBarry Warsaw2009-08-051-1/+0
|
* Move BadDomainSpecificationError to domain.txt interface. Try to set this toBarry Warsaw2009-07-262-2/+30
| | | | | | return an HTTP 400 error, though it does not seem to work. Expose list creation through the API.
* * Expose IMailingLists in the API.Barry Warsaw2009-07-251-6/+8
| | | | | | * Better titles in the IMailingList interface. * Expose the real_name attribute. * Refactor URL mappers.
* Our first writable REST API! You can now create new domains through theBarry Warsaw2009-07-201-1/+25
| | | | | | | | | webserver. Fix the https/http urls. Add the adapter for HTTPCharsets so POSTs work properly. Nice little cargo cult from lazr.restful.
* Wow. Put domains into the database.Barry Warsaw2009-07-161-3/+74
| | | | | | | | Add an IDomainManager and a global domain manager which can be gotten by adapting the global config object. Add an IDomainCollection interface for exposing the domain manager onto the API.
* Clean a few more lints.Barry Warsaw2009-07-103-15/+46
| | | | | | | | | | | | | | Add get_mailing_lists() which is used just for the web interface. Because of a bug in lazr.restful, this cannot be a generator. Similar change in IDomainSet. Instrument IListManager to be vended through the api. The REST server must be run in a separate process since SQLite does not like objects created in one thread to be used in another thread. Note that this breaks the domain.txt test, but domains really need to be in the database anyway.
* More REST server updates.Barry Warsaw2009-06-291-27/+43
| | | | | | | * Get rid of in-Python adapter registration in favor of ZCML. Eventually, I'd like to get rid of the ZCML. * Set the view_permission to None, but it's still not right. * Add IDomainSet and an adapter from Configuration to IDomainSet.
* Linux signal management appears to work differently than OS X. Introduce aBarry Warsaw2009-05-111-0/+8
| | | | | runner flag to indicate whether the qrunner parent process should intercept signals or not. The REST server should not intercept signals.
* Moving closer now.Barry Warsaw2009-05-021-3/+3
| | | | | | | | | * Use the source version of lazr.restful until it's cheeseshopped. * IHasGet -> IResolvePathNames * path_override -> None; we don't need this * Simplify publication. We don't need anything fancy, except that what sucks is that it seems like we need to unwrap the security proxy in callObject() * Adaptation to IAbsoluteURL still doesn't work right.
* Checking pointing all the ZCA and restful wiring that I really don'tBarry Warsaw2009-04-021-0/+1
| | | | understand. Cargo culting FTW.
* Checkpointing more REST stuffBarry Warsaw2009-04-011-0/+36
|
* Checkpointing restful annotations.Barry Warsaw2009-04-011-5/+14
|
* Hook in lazr.restful (which isn't in the Cheeseshop yet).Barry Warsaw2009-04-012-1/+40
| | | | | | | Add infrastructure that the first REST interface will use, i.e. providing the Mailman and Python versions. Update bin/version
* Add argparse 'cause I think this might end up being cool.Barry Warsaw2009-03-291-0/+5
| | | | | | | | Refactor the finding of components so that it's much easier to find and register the ones that come with Mailman by default. Move all the old cmd_*.py commands into the attic. These will eventually be ported to the new framework.
* Move the Action and NewsModeration enums into their own interface files.Barry Warsaw2009-03-253-44/+67
|
* Remove the mailman.database setup.py plugin, instead opting for defining theBarry Warsaw2009-03-051-1/+1
| | | | database class in the configuration file.
* There are some situations where the RFC 2919 List-ID header must be explicitlyBarry Warsaw2009-03-031-7/+22
| | | | | set. Make this possible by moving list_id to an attribute of the MailingList object instead of hard-coding its calculation in cook_headers.py.
* Convert content filter and acceptable aliases away from pickle types.Barry Warsaw2009-03-032-13/+138
| | | | | | | * Add an adapter from mailing lists to acceptable alias set. Use this instead of the old acceptable alias interface, which is not removed. * Add contentfilter table * Add a bunch of missing docstrings
* acceptable_aliases are no longer a pickle.Barry Warsaw2009-02-231-0/+35
|
* Get rid of one_last_digest. Move this into a separate OneLastDigest table.Barry Warsaw2009-02-222-13/+60
| | | | | | | | | | | | | Make it explicit to get the last digest (I could imagine an user selecting not to). Actually add tests for this. Start to get rid of 'from storm.locals import *' in favor of more specific imports. Start to use Store.of() instead of config.db.store where we can. Rework (delivery)MemberRosters to use the Member attributes. This ensures that the layered lookup happens at the expense of query optimization. Sundry and various cleanups.
* Major cleanup of the automatic response stuff.Barry Warsaw2009-02-191-0/+15
| | | | | | | | | inject_message() grows a keyword argument dictionary which gets merged into the message metadata. Move NODELTA into the autorespond interface as ALWAYS_REPLY. Convert the integer response values into the ResponseAction enum.
* Add IAutoResponseSet.last_response() and fix a few bugs with the datetimeBarry Warsaw2009-02-191-0/+15
| | | | | testing harness. Remove the {admin,postings,request}_response attributes, but these are not apparently tested.
* Checkpointing the conversion of automatic responses away from pickles.Barry Warsaw2009-02-161-0/+87
|