summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Clean up.Barry Warsaw2011-04-201-6/+0
|
* * Move members.txt corner cases to unittests.Barry Warsaw2011-04-209-109/+232
| | | | | | | * Fix a case in a list's /members API where the listname is bogus. * Catch NotAMemberError form delete_member() and return not_found. * Refactor REST helpers so that call_api() can be used in unittests without doing any prints to stdout.
* Add REST API for addresses, and change the user REST API to use it whereBarry Warsaw2011-04-197-87/+333
| | | | | | | | | | appropriate. Also: * When an Address instance is created, set its registered_on attribute. * Users may not have a password or real_name, so only include those attributes in the REST API for Users if they are set.
* Give user resources and user address resources a self_link.Barry Warsaw2011-04-192-31/+46
|
* Add REST API for removing a domain.Barry Warsaw2011-04-192-1/+32
|
* Add some tests to ensure that the correct number of members are returned whenBarry Warsaw2011-04-173-3/+86
| | | | users are subscribed with their preferred addresses.
* Users can now subscribe to a mailing list, and their preferred address willBarry Warsaw2011-04-175-225/+324
| | | | get delivery.
* Users now have a preferred address which can be set, changed, and deleted.Barry Warsaw2011-04-165-20/+155
| | | | The preferred address must be verified, and controllable by the user.
* Refactor .subscribe() from IAddress to IMailingList.Barry Warsaw2011-04-1620-150/+140
|
* Typo fix.Barry Warsaw2011-04-121-1/+1
|
* Add a test for retrieval by case-preserved address.Barry Warsaw2011-04-091-0/+7
|
* Add /users/<uid>/addresses to get all the addresses registered to a user.Barry Warsaw2011-04-092-1/+113
|
* Hook in initial password setting to user creation via API.Barry Warsaw2011-04-082-3/+31
|
* Fix initialization of lock object.Barry Warsaw2011-04-081-7/+11
|
* Merge passwords into restBarry Warsaw2011-04-0817-40/+138
|\
| * encrypt_password(): New convenience function for ensuring that a password isBarry Warsaw2011-04-0811-31/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | both encrypted according to a scheme, and a bytes object. add_member(): Use encrypt_password(). cli_members: Give the user a default, user-friendly password. Of course, this will be encrypted so it can't be retrieved, but it can be reset. Passwords are stored as bytes objects, not unicode now. ConfigLayer: Set the default test password scheme to cleartext. General test repair.
| * add_member()Barry Warsaw2011-04-087-14/+44
| | | | | | | | | | | | | | | | | | | | | | | | - As the most common interface for adding new members (and users), adapt the password storing bit to storing only encrypted passwords in the database. schema.cfg: - Remove the creator_pw_file and site_pw_file as they are obsolete. - Add password_schema key for defining the default password encryption scheme. mailman.sql, user.py: - Store the password as a binary blob instead of as unicode text.
* | Merge passwords into restBarry Warsaw2011-04-083-1/+15
|\|
| * Merge users into passwordsBarry Warsaw2011-04-083-1/+15
| |\
| | * Add an attribute for getting the IUser record from an IMember record. This isBarry Warsaw2011-04-083-1/+15
| | | | | | | | | | | | pure convenience by way of an IUserManager lookup.
* | | Merge passwords into restBarry Warsaw2011-04-074-4/+77
|\| |
| * | make_user_friendly_password(): Ported from Mailman 2.1.Barry Warsaw2011-04-074-4/+77
| |/
* | Move missing users test, and add a test for bogus email address.Barry Warsaw2011-04-061-7/+21
| |
* | Get users via email address through the REST API.Barry Warsaw2011-04-052-2/+24
| |
* | Removing debugging printBarry Warsaw2011-04-041-1/+0
| |
* | More fleshing out of the users REST API.Barry Warsaw2011-04-049-18/+180
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Merge users into restBarry Warsaw2011-04-0110-32/+159
|\|
| * * Re-organize the interface between buildout.cfg and the zope.testing layerBarry Warsaw2011-04-0110-32/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | initialization. buildout.cfg is now really simple; it calls one method. That method does all the relevant layer initializations. This better localizes what has to be set up before testing can even begin. * IUsers now have a created_on property which contains the datetime at which the user record was created. * Rework the date and uid factories so that they consult the MockAndMonkeyLayer for the current testing flag. Also, those factories register themselves with the layer so that they'll get automatically reset between tests, without the layer actually having to know about them. * Move the User model object initialization into User.__init__() from the user manager. The User now also adds itself to the store. * Add a 'uid factory' for unique id creation, which is test suite aware.
* | Basic REST users URL.Barry Warsaw2011-03-181-0/+41
| |
* | Merge users into restBarry Warsaw2011-03-1811-21/+79
|\|
| * * Give users a unique, random, immutable user id.Barry Warsaw2011-03-1811-21/+79
| | | | | | | | | | * Find users by user_id via the user manager. * Extend the repr of users to include the user id.
* | * Start fleshing out the REST API for users.Barry Warsaw2011-03-184-113/+62
|/ | | | * Remove mmsitepass.py - there is no more site password.
* Reimplement wrap() using modern techniques, and finally get rid of Utils.py!Barry Warsaw2011-03-1719-173/+263
|
* Update comment.Barry Warsaw2011-03-161-1/+5
|
* Utils.maketext() and Utils.findtext() are gone.Barry Warsaw2011-03-1613-222/+100
|
* make() and some tests.Barry Warsaw2011-03-162-4/+113
|
* Checkpointing migration of findtext() and maketext() out of Utils.py. TestsBarry Warsaw2011-03-162-15/+254
| | | | added. TODO: flesh out make().
* Basic tests for Utils.py findtext(). This will go away, but for now it'sBarry Warsaw2011-03-155-3/+157
| | | | useful for ensuring current functionality.
* More eradication of Utils.py.Barry Warsaw2011-02-263-42/+43
|
* Cue Freddy Mercury. Another one bites the dust.Barry Warsaw2011-02-254-10/+11
|
* nntpsplit() is replaced by lazr.config.as_host_port().Barry Warsaw2011-02-253-16/+6
|
* Two more unused functions removed. Utils.py, your days are numbered.Barry Warsaw2011-02-251-20/+0
|
* Move oneline() out of Utils.py.Barry Warsaw2011-02-258-24/+46
|
* Remove an unused function from Utils.py.Barry Warsaw2011-02-251-55/+0
|
* Eliminate Utils.get_pattern() and in the process, completely revampBarry Warsaw2011-02-2511-38/+461
| | | | | | | | | subscription bans so as not to have to rely on BLOBS or pickles in the database. Also, be sure to include .rst files in both doctests and in the packaged tarballs. With the now awesome reST mode for Emacs, I plan to rename all .txt doctest files to .rst.
* Move passwords module to the utilities subpackage.Barry Warsaw2011-02-254-6/+2
|
* Fixed a typo in add_member() which prevented subscribing an email address thatBarry Warsaw2011-01-316-16/+110
| | | | | | | | was already linked to a user. Found by Florian Fuchs who also provided the fix, though I implemented the test differently. LP: #710182 Also, refactor the "reset the world" functionality ConfigLayer.testTearDown() so that it could be used by other test code.
* Implement the email address validator as a utility for easier pluggability.Barry Warsaw2011-01-066-41/+71
|
* Remove some unused/untested stuff regarding password creation from Utils.py.Barry Warsaw2011-01-043-355/+1
| | | | Also, remove a obsolete test.
* Better wording given by Patrick Ben Koetter.Barry Warsaw2011-01-031-2/+14
|