summaryrefslogtreecommitdiff
path: root/src/mailman/interfaces/address.py
Commit message (Collapse)AuthorAgeFilesLines
* Bump copyright years.Barry Warsaw2017-01-041-1/+1
|
* Use `atpublic` for @public instead of internal copy.Barry Warsaw2016-11-291-1/+1
|
* Import order flake8 plugin.Barry Warsaw2016-03-271-1/+1
| | | | Fix lots of import order errors discovered by the new plugin.
* Clean up the interfaces directory.Barry Warsaw2016-03-251-18/+11
|
* Super duper.Barry Warsaw2016-01-261-2/+2
| | | | | * Python 3-ify super() calls. * Remove a bunch of obsolete exception classes.
* Happy New Year.Barry Warsaw2016-01-021-1/+1
|
* Bump copyright years.Barry Warsaw2015-01-041-1/+1
|
* Remove huge amounts of now unnecessary file boilerplate.Barry Warsaw2014-12-221-5/+1
|
* Bump copyright years.Barry Warsaw2014-01-011-1/+1
|
* Bump copyright years.Barry Warsaw2013-01-011-1/+1
|
* * Python 2.7 is not required. Python 2.6 is no longer officially supported.Barry Warsaw2012-10-311-5/+1
| | | | | The code base is now also `python2.7 -3` clean, although there are still some warnings in 3rd party dependencies. LP: #1073506
* * A `PasswordChangeEvent` is triggered when an `IUser`'s password changes.Barry Warsaw2012-04-071-1/+2
| | | | (LP: #975700)
* * An `AddressVerificationEvent` is triggered when an `IAddress` is verifiedBarry Warsaw2012-04-071-0/+15
| | | | or unverified. (LP: #975698)
* Several fixes and cleanups, ostensibly to fix Python 2.6 support.Barry Warsaw2012-03-221-4/+20
| | | | | | | | | | | | | | | | | | | | | | | | | - email.iterators.body_line_iterator() cannot handle unicodes in Python 2.6, because it uses cStringIO.StringIO under the covers, and *that* can't handle unicode. This works fine in Python 2.7, so I override this for the tests only under 2.6 (the code itself isn't affected). - AddressError needs to str() its IAddress attribute explicitly in the __str__() method, otherwise under Python 2.6, you'll get unprintable reprs in the doctests. Again, this works correctly in 2.7, but EIBTI, so it can't hurt either way. - EmailError: a new exception, not related to AddressError. The reason for this it to conform to current nomenclature: "address" means an IAddress while "email" means a text email address. So InvalidEmailAddressError now derives from EmailError instead of AddressError because it gets passed a text email address, and because that is invalid, it never gets turned into an IAddress. The __str__() of this new base exception class does some tricky encoding to keep it compatible between Python 2.6 and 2.7. - UnverifiedAddressError derives from AddressError instead of the more generic MailmanError. - A few random code cleanups are included.
* Schema change. After discussion at Pycon, we decided to change "real_name" toBarry Warsaw2012-03-151-2/+2
| | | | | | | | | | | "display_name" across the board. * `IMailingList.real_name` -> `IMailingList.display_name` * `IUser.real_name` -> `IUser.display_name` * `IAddress.real_name` -> `IAddress.display_name` * Schema changes: - real_name -> display_name (mailinglist, user, address)
* copybumpBarry Warsaw2012-01-011-1/+1
|
* Users now have a preferred address which can be set, changed, and deleted.Barry Warsaw2011-04-161-0/+1
| | | | The preferred address must be verified, and controllable by the user.
* Refactor .subscribe() from IAddress to IMailingList.Barry Warsaw2011-04-161-10/+0
|
* More fleshing out of the users REST API.Barry Warsaw2011-04-041-0/+6
| | | | | | | | | | | | | | * Add a 'uid factory' which allows us to return predictable unique ids for various testing purposes, e.g. user ids. This should work even in the case of cross-subprocess uid generation. * REST access to individual users, or the set of all users. * User objects now have a created_on attribute. * Users can be created through the web, but must have an email address. * Add a [devmode] 'testing' variable for communicating to qrunner subprocesses that we're running in testing mode. This allows us to coordinate factories and such in the qrunner processes. * layers.is_testing() for more consistent API. * Give AddressError a .address attribute for better diagnostics.
* Implement the email address validator as a utility for easier pluggability.Barry Warsaw2011-01-061-0/+23
|
* Happy New Year.Barry Warsaw2011-01-011-1/+1
|
* Because it was just to damn confusing, rename IAddress.address toBarry Warsaw2011-01-011-10/+10
| | | | | | IAddress.email and IAddress.original_address to IAddress.original_email. From now on we'll use "address" to talk about the IAddress object and "email" to talk about the textual email address.
* * Simplify the membership.txt doctest.Barry Warsaw2010-12-311-1/+1
| | | | | | | * Add test to show that the incoming runner adds all sender addresses to the global user manager. * New doctest helper: dump_list() * Other random cleanups.
* Rip out lazr.restful and replace it with restish. This simpifies a lot of theBarry Warsaw2010-02-231-2/+0
| | | | | REST architecture, at the expense of a few features, and less support. So far so good though.
* Happy New Year.Barry Warsaw2010-01-011-1/+1
|
* * Add REST interface for joining a mailing list.Barry Warsaw2009-12-281-0/+7
| | | | | | * add_member() now returns the newly created IMember. * Reorganized several exceptions and exposed them to the REST API. * Added NoSuchListError.
* Push the source directory into a 'src' subdirectory so that zc.buildout worksBarry Warsaw2009-01-251-0/+101
correctly regardless of how it's used.