summaryrefslogtreecommitdiff
path: root/src/mailman/model/docs
Commit message (Collapse)AuthorAgeFilesLines
* Checkpointing.Barry Warsaw2015-04-161-4/+15
|
* Plumb the subscription policy through the REST API.Barry Warsaw2015-04-151-4/+14
|
* * Mailing list subscription policy work flow has been completely rewritten.Barry Warsaw2015-04-153-300/+101
|\ | | | | | | | | | | It now properly supports email verification and subscription confirmation by the user, and approval by the moderator using unique tokens. ``IMailingList`` objects now have a ``subscription_policy`` attribute.
| * Prevent replay attacks with the confirmation token.Barry Warsaw2015-04-151-2/+0
| |
| * Full test suite passes.Barry Warsaw2015-04-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | * Make sure Registrar.discard() removces any workflow state manager state associated with the token, and that this is flushed to SA. * Adjust the email commands to the new IRegistrar API. * Update the IRegistrar interface. * Add IWorkflowStateManager.discard() and make `count` an attribute/property. * Mark two tests as expected failures due to LP: #1444184.
| * Merge the member query fix branch.Barry Warsaw2015-04-141-2/+36
| |\
| | * Added IMember.subscriber to definitively return how a member is subscribed toBarry Warsaw2015-04-141-2/+36
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | the mailing list (via preferred address/user or explicit address). IMember.get_member() is defined to return the explicit address when members are subscribed in both ways. IMember.get_memberships() returns a sequence of length 0, 1, or 2 containing all the member records associated with the email address. Fixed the AbstractMemberRoster methods query to properly return subscriptions via the user's preferred address and via an explicit address.
| * Checkpointing.Barry Warsaw2015-04-141-298/+55
| |
| * Give IPendings a count of entries.Barry Warsaw2015-04-131-0/+10
|/
* Checkpointing:Barry Warsaw2015-04-061-0/+15
| | | | | | * Cleanups. * Updates to domains and users. * Allow is_server_owner to be PUT.
* Reviewed and updated domains doctest.Barry Warsaw2015-04-061-13/+18
|
* Abhilash's branch, pre-cleaning.Barry Warsaw2015-04-062-24/+27
|\
| * * implement left over methodsAbhilash Raj2015-04-061-5/+5
| | | | | | | | * add and remove owners using the address
| * * Add `drop_column` inside sqlite check, fix indentationAbhilash Raj2015-03-311-4/+4
| | | | | | | | | | | | | | | | * Change `Owner` to `DomainOwner` * Fix indentation errors in docs * add multiple owners using `add_owners` * all dummy addresses should be using example.com, example.org to avoid conflict ever * add dummy tests
| * add tests, fix docs, remove contact_addressAbhilash Raj2015-03-281-23/+26
| |
* | trunk mergeBarry Warsaw2015-03-281-0/+22
|\ \
| * | More tests of make_user().Barry Warsaw2015-03-211-0/+22
| |/
* / Fix some typos.Barry Warsaw2015-03-281-3/+3
|/
* Another test cleansing.Barry Warsaw2014-12-211-6/+6
|
* Clean up a SA warning.Barry Warsaw2014-12-211-2/+2
|
* More test repair.Barry Warsaw2014-12-151-1/+1
|
* Fix pending.rst.Barry Warsaw2014-12-141-5/+5
| | | | | | NOTE NOTE NOTE: This is a potential upgrade issue. The values in the pending database used to be either custom pickle-like objects or actual pickles. Now all values are JSON representations.
* All model tests except for pendings.rst is passing now.Barry Warsaw2014-12-133-67/+9
|
* More model test fixes and ports.Barry Warsaw2014-12-134-98/+27
|
* languages.rst passesBarry Warsaw2014-12-011-2/+2
|
* model/addresses.rst passes, with some bad-path cases moved to unittests.Barry Warsaw2014-12-011-17/+3
|
* registrar.rst is ported; some bad path tests moved to a unittest.Barry Warsaw2014-12-011-29/+4
|
* Merge abompard's fixes to the Postgres test suite.Barry Warsaw2014-10-301-6/+9
|
* Use print() to smooth over the SA return of Python longs in PostgreSQL.Barry Warsaw2014-10-132-21/+21
|
* Pass all tests with PYTHONWARNINGS=error.Barry Warsaw2014-09-221-2/+3
| | | | | | | | | | * Switch away from a deprecated unittest method. * Switch away from using deprecated Exceptions.message attribute. * Decode the bytes b32 encoded X-Message-ID-Hash header into a Unicode. * Fix a rather glaring bug in Pendings.add() where we were actually not properly coercing bytes to unicode for the keys and values! I guess it's a good thing that SQLAlchemy is more strict than Storm. * Some cosmetic fixes.
* Use print functions consistently through, and update all __future__ imports toBarry Warsaw2014-04-2815-156/+156
| | | | | | | | reflect this. Also, mock out sys.stderr on some tests so that their nose2 output is quieter. A few other minor coding style consistencies.
* * Fix test isolation bug in ``languages.rst``.Barry Warsaw2014-04-171-5/+5
|\ | | | | | | [Piotr Kasprzyk] (LP: #1308769)
| * Make a copy before first usage of mgr.clear()Piotr Kasprzyk2014-04-161-4/+4
|/
* Several internal improvements:Barry Warsaw2014-01-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | * New events: - ConfirmationNeededEvent is triggered when a pendable requiring confirmation is created. This allows us to define an event handler for this event which sends the user notification. - SubscriptionEvent is triggered when a member is added to a mailing list. This lets us define an event handler which sends the welcome message. * send_welcome_message() now takes a member parameter instead of an address, which lets us directly access the member's delivery mode and user display name (if the member has a user, which it might not in some cases). * Use the list id in the pendable record instead of the list name for robustness (the latter can change but the former is permanent). * Test more registration conditions. * In the bin/runner command line switch handling, default `verbose` to None instead of False. This makes it work better with nose's -E switch (log to stderr). * In call_api(), if a POST, PUT, or PATCH method is used and data is None, encode the empty dictionary; seems like the behavior of urlencode() has changed, so this is safer. * Fix style and pyflakes warnings.
* trunk mergeBarry Warsaw2013-09-013-4/+3
|\
| * Switch to PEP 435 enums from flufl.enums.Barry Warsaw2013-06-183-4/+3
| |
* | Migrate bounceevent.list_name -> bounceevent.list_idBarry Warsaw2013-09-011-2/+2
|/ | | | | | | * Rename StormBaseDatabase._create() -> .initialize() * Refactor database initialization. * make_listid() helper. * Add a pivot() helper for schema migrations.
* * Two new events are triggered on membership changes: `SubscriptionEvent`Barry Warsaw2012-12-231-0/+23
| | | | | when a new member joins a mailing list, and an `UnsubscriptionEvent` when a member leaves a mailing list. (LP: #1047286)
* Fix cross-references.Barry Warsaw2012-12-171-1/+1
|
* * Simplify moderator.rst and requests.rst so they serve a better purpose asBarry Warsaw2012-12-171-804/+69
| | | | | | | | | | documentation. Move non-documentation tests into a separate unittest file. * Separate out the doctests for IRequest from the doctests for app/moderator.py and place the latter in a separate file. * Fix typo in app/membership.py (s/send_goodbye_msg/send_goodbye_message), but LP: #1091321 tracks more needed fixes in this area.
* * Python 2.7 is not required. Python 2.6 is no longer officially supported.Barry Warsaw2012-10-311-2/+1
| | | | | The code base is now also `python2.7 -3` clean, although there are still some warnings in 3rd party dependencies. LP: #1073506
* * The link between members and the mailing lists they are subscribed to, isBarry Warsaw2012-09-045-42/+69
| | | | | | | | | | | | | | | now via the RFC 2369 `list_id` instead of the fqdn listname (i.e. posting address). This is because while the posting address can change if the mailing list is moved to a new server, the list id is fixed. (LP: #1024509) + IListManager.get_by_list_id() added. + IListManager.list_ids added. + IMailingList.list_id added. + Several internal APIs that accepted fqdn list names now require list ids, e.g. ISubscriptionService.join() and .find_members(). + IMember.list_id attribute added; .mailing_list is now an alias that retrieves and returns the IMailingList. - list_id added (LP: #1024509)
* Replace flufl.password with passlib, albeit with a wrapper.Barry Warsaw2012-06-271-1/+1
|
* General code cleanup.Barry Warsaw2012-04-252-6/+12
| | | | | | | | - Add explicit dependency on zope.event in setup.py. - Use Python 3 compatible syntax for specifying that a class implements an interface, i.e. the @implementer class decorator. - print_function futures. - Whitespace normalization.
* * A `PasswordChangeEvent` is triggered when an `IUser`'s password changes.Barry Warsaw2012-04-071-0/+19
| | | | (LP: #975700)
* * An `AddressVerificationEvent` is triggered when an `IAddress` is verifiedBarry Warsaw2012-04-071-3/+28
| | | | or unverified. (LP: #975698)
* ArchitectureBarry Warsaw2012-03-262-3/+3
| | | | | | | | | | | | | | | | | | | ------------ * Internally, all datetimes are kept in the UTC timezone, however because of LP: #280708, they are stored in the database in naive format. * `received_time` is now added to the message metadata by the LMTP runner instead of by `Switchboard.enqueue()`. This latter no longer depends on `received_time` in the metadata. * The `ArchiveRunner` no longer acquires a lock before it calls the individual archiver implementations, since not all of them need a lock. If they do, the implementations must acquire said lock themselves. Configuration ------------- * New configuration variables `clobber_date` and `clobber_skew` supported in every `[archiver.<name>]` section. These are used to determine under what circumstances a message destined for a specific archiver should have its `Date:` header clobbered.
* - Move some normal recipient tests to unittests.Barry Warsaw2012-03-231-4/+4
| | | | | | | | - Add unittests for owner recipients. There does eventually need to be some documentation about owner recipients. - Implement owner recipients handler. This includes moderators and owners (i.e. all the non-disabled the list administrators). - Changed the [mailman]site_owner setting in testing.cfg to noreply@example.com
* Schema change. After discussion at Pycon, we decided to change "real_name" toBarry Warsaw2012-03-156-36/+34
| | | | | | | | | | | "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)
* Fix welcome_message_uri to do the placeholder interpolations guaranteed in theBarry Warsaw2012-03-042-1/+5
| | | | | | | | IMailingList documentation. Also: * `ILanguageManager.add()` returns the `ILanguage` object just created.