summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Users subscribed to a mailing list via their preferred address show upBarry Warsaw2011-04-224-9/+69
| | | | | correctly in the REST API's list of members. This even correctly tracks changes in their preferred address.
* newlineBarry Warsaw2011-04-221-1/+1
|
* Give IMembers a unique member id. We have to do this in order to give them aBarry Warsaw2011-04-2214-71/+317
| | | | | | | | | | | | | | | | | | | | | | | path at the root of the resource tree (i.e. /members/X) and because when members can be subscribed by their IUser record (for preferred address), their canonical location cannot contain the address they are subscribed with. When their preferred address changes (without otherwise touching their membership), this address will change and that's not good for a canonical location. Other changes: * Added IMember.member_id attribute * Added ISubscriptionService.get_member() so member records can be retrieve by member id. * We can now get individual members by id via the REST API. * Extend the UniqueIDFactory so that it can take a 'context' (defaulting to None). The context is only used in the testing infrastructure so that separate files can be used for user ids and member ids. Otherwise, we'd have gaps in those sequences. * When *not* in testing mode, ensure that UIDs cannot be reused by keeping a table of all UIDs ever handed out. We *should* never get collisions, but this ensures it. * Clean up mailman.sql
* 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.
* IUsers can now have a preferred email address, which must be verified. A userBarry Warsaw2011-04-1724-359/+583
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | can now subscribe to a mailing list, in which case, their preferred address will be used for the appropriate roster. Users cannot subscribe to a mailing list more than once, but they can still subscribe even if their preferred address is subscribed, and if a user is subscribed, an address they control can still be explicitly subscribed. Other changes: * .subscribe() is moved from the IAddress to the IMailingList * IUser.address and .user are now properties * Added IUser.preferred_address which is a get/set/del property
| * fixesBarry Warsaw2011-04-170-0/+0
| |
| * 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.
| * Merge subscribe into preferredBarry Warsaw2011-04-1620-150/+140
|/|
| * Refactor .subscribe() from IAddress to IMailingList.Barry Warsaw2011-04-1620-150/+140
|/
* Typo fix.Barry Warsaw2011-04-121-1/+1
|
* Lots of work to update the model for users, passwords, membership, testing,Barry Warsaw2011-04-1236-199/+906
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and the REST API. A highlight of the merged changes: * The REST API now has a /users top-level URL under which user information can be accessed, and new users can be created. * IUsers now have a unique `user_id` which is evident in the REST API. Under testing, these uids are predictable, but otherwise, they're entirely random but guaranteed to be unique. * IUsers now have a `created_on` attribute. Like `user_id` these are predictable under testing, but otherwise reflect the actual date. * User passwords are now 'encrypted' (hashed) as defined by the config file. - new mailman.cfg variables password_scheme and password_length * IMember gets a `user` attribute which is a convenience for getting the IUser associated with the member. * mmsitepass is gone: - creator_pw_file - site_pw_file * Improved test initialization and its hook into zc.buildout.
| * Merge passwords into restBarry Warsaw2011-04-100-0/+0
| |\
| | * Merge users into passwordsBarry Warsaw2011-04-100-0/+0
| | |\
| | | * Merge trunk into usersBarry Warsaw2011-04-100-0/+0
| | | |\ | |_|_|/ |/| | |
* | | | Revert r6975 from trunk merge, which broke the test suite. I'm not sureBarry Warsaw2011-04-10107-11763/+2
| | | | | | | | | | | | | | | | | | | | | | | | exactly what happened but bzr email notification said "13 revisions were removed from the branch". I'll open an issue and attach a diff for future resolution.
* | | | Trunk mergeBarry Warsaw2011-04-1055-986/+1588
|\ \ \ \
* \ \ \ \ trunk mergeBarry Warsaw2011-01-07107-2/+11763
|\ \ \ \ \
| * \ \ \ \ Merge bounce detection tests from Mailman 2.1.Barry Warsaw2010-07-17106-95/+11759
| |\ \ \ \ \
| | | | * | | 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-0111-35/+161
| | | | |\|
| | | | | * * Re-organize the interface between buildout.cfg and the zope.testing layerBarry Warsaw2011-04-0111-35/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | | * Utils.py is gone baby, gone!Barry Warsaw2011-03-1719-173/+263
| | | |\
| | | | * Reimplement wrap() using modern techniques, and finally get rid of Utils.py!Barry Warsaw2011-03-1719-173/+263
| | | | |
| | | | * trunk mergeBarry Warsaw2011-03-160-0/+0
| | | | |\ | | | | |/ | | | |/|
| | | * | Another step in the removal of the mailman.Utils module. This removesBarry Warsaw2011-03-1615-213/+597
| | | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Utils.maketext() and Utils.findtext() in favor of better implementations in mailman.utilities.i18n. We're nearly there!