summaryrefslogtreecommitdiff
path: root/src/mailman/model/user.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
|
* MySQL is now an officially supported database.Barry Warsaw2016-07-291-4/+4
| | | | Given by Abhilash Raj.
* Clean up the User.absorb() method and tests.Barry Warsaw2016-05-141-11/+15
|
* Fix Flake8 errorsAurélien Bompard2016-05-041-4/+4
|
* Implement suggestions from the reviewAurélien Bompard2016-05-041-0/+1
|
* Delete redundant memberships before deleting the absorbed userAurélien Bompard2016-05-041-5/+6
|
* Add a method to merge a user into another userAurélien Bompard2016-05-041-0/+31
|
* Tweak the import rules checker.Barry Warsaw2016-03-271-1/+1
| | | | Fix the last few violations of the import rules.
* Clean up the model and languages directories.Barry Warsaw2016-03-251-11/+6
|
* Super duper.Barry Warsaw2016-01-261-1/+1
| | | | | * Python 3-ify super() calls. * Remove a bunch of obsolete exception classes.
* Happy New Year.Barry Warsaw2016-01-021-1/+1
|
* Give the predictable ID factories similar APIs.Aurélien Bompard2015-12-261-3/+3
|
* Checkpointing:Barry Warsaw2015-04-061-3/+5
| | | | | | * Cleanups. * Updates to domains and users. * Allow is_server_owner to be PUT.
* * implement left over methodsAbhilash Raj2015-04-061-0/+1
| | | | * add and remove owners using the address
* * Add `drop_column` inside sqlite check, fix indentationAbhilash Raj2015-03-311-3/+3
| | | | | | | | * 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
* merge serverowner branchAbhilash Raj2015-03-271-1/+10
|\
| * all tests passing now (except doctests)Abhilash Raj2015-03-261-1/+1
| |
| * add domainowner and serverowner optionsAbhilash Raj2015-03-211-1/+10
| | | | | | | | | | | | * Add is_serverowner flag in User model and api * Add owner table for user-domain's many to many relationship * add owners subresource in domain's rest api
* | * When deleting a user object, make sure their preferences are also deleted.Barry Warsaw2015-03-201-1/+3
|/ | | | Given by Abhishek. (LP: #1418276)
* Bump copyright years.Barry Warsaw2015-01-041-1/+1
|
* Remove huge amounts of now unnecessary file boilerplate.Barry Warsaw2014-12-221-8/+4
|
* More model test fixes and ports.Barry Warsaw2014-12-131-3/+3
|
* CheckpointingBarry Warsaw2014-12-121-1/+1
|
* Merge Aurélien Bompard's latest merge branch, with some cleaning up by Barry.Barry Warsaw2014-10-131-4/+7
|\
| * * remove migrate commandAbhilash Raj2014-10-101-2/+2
| | | | | | | | | | | | | | | | * remove alembic.cfg, move contents to schema.cfg * fix import errors in src/mailman/model/language.py * add indexes * change the previously wrong written tablename autoresponserecord * change alembic_cfg to use schema.cfg instead of alembic.cfg
| * fix database reset error due to foreign key constraint between user and ↵Abhilash Raj2014-10-091-1/+4
|/ | | | address tables
* Clean up pass.Barry Warsaw2014-09-221-14/+13
|
* * remove some unused codeAbhilash Raj2014-09-191-1/+0
| | | | | | | * add left out documentation * remov super(<class>).__init__() calls in models as it was useless now. * remove schema_migrate func in mailman/database/base.py
* * fix the circular dependecy problem between User and AdressAbhilash Raj2014-09-191-3/+6
| | | | * fix almost all the errors relating to doctests
* fix all tests in mailman.model.testsAbhilash Raj2014-09-131-2/+3
|
* change leftover queriesAbhilash Raj2014-09-131-3/+3
|
* modify all storm queries to work with SAAbhilash Raj2014-09-121-2/+4
|
* * change declarative_base class to use ModelMeta classAbhilash Raj2014-09-061-4/+6
| | | | * update some queries to match SA style
* replace all storm types and relationships with sqlalchemyAbhilash Raj2014-09-051-13/+19
|
* Bump copyright years.Barry Warsaw2014-01-011-1/+1
|
* Bump copyright years.Barry Warsaw2013-01-011-1/+1
|
* General code cleanup.Barry Warsaw2012-04-251-3/+2
| | | | | | | | - 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.
* - Module modernatizations (print function).Barry Warsaw2012-04-221-9/+12
| | | | - Convert direct use of config.db global to use the @dbconnection decorator.
* * A `PasswordChangeEvent` is triggered when an `IUser`'s password changes.Barry Warsaw2012-04-071-2/+13
| | | | (LP: #975700)
* Schema change. After discussion at Pycon, we decided to change "real_name" toBarry Warsaw2012-03-151-8/+8
| | | | | | | | | | | "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
|
* * User and Member ids are now proper UUIDs. The UUIDs are pended as unicodes,Barry Warsaw2011-08-301-3/+5
| | | | | | | | | | | | | | | | | | and exposed to the REST API as their integer equivalents. They are stored in the database using Storm's UUID type. - ISubscriptionService.get_member() now takes a UUID - IUserManager.get_user_by_id() now takes a UUID * Moderators and owners can be added via REST (LP: #834130). Given by Stephen A. Goss. - add_member() grows a `role` parameter. - ISubscriptionService.join() grows a `role` parameter. * InvalidEmailAddressError no longer repr()'s its value. * `address` -> `email` for consistency - delete_member() - ISubscriptionService.leave() * Fixed typo in app/subscriptions.py __all__ * AlreadySubscribedError: attributes are now public. * More .txt -> .rst renames.
* Give IMembers a unique member id. We have to do this in order to give them aBarry Warsaw2011-04-221-1/+4
| | | | | | | | | | | | | | | | | | | | | | | 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
* Users now have a preferred address which can be set, changed, and deleted.Barry Warsaw2011-04-161-1/+27
| | | | The preferred address must be verified, and controllable by the user.
* Merge passwords into restBarry Warsaw2011-04-081-2/+3
|\
| * add_member()Barry Warsaw2011-04-081-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | - 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.
* | More fleshing out of the users REST API.Barry Warsaw2011-04-041-1/+4
|/ | | | | | | | | | | | | | * 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.
* * Re-organize the interface between buildout.cfg and the zope.testing layerBarry Warsaw2011-04-011-1/+17
| | | | | | | | | | | | | | | | | | | 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.
* * Give users a unique, random, immutable user id.Barry Warsaw2011-03-181-1/+8
| | | | | * Find users by user_id via the user manager. * Extend the repr of users to include the user id.