summaryrefslogtreecommitdiff
path: root/src/mailman/rest/users.py
diff options
context:
space:
mode:
authorBarry Warsaw2011-04-05 18:54:31 -0400
committerBarry Warsaw2011-04-05 18:54:31 -0400
commitd8ecd977cf11b60ce4851315ecc9855be71d9596 (patch)
treef9c2b8892a8ee481d1f5eca0c05ede314d5ba99f /src/mailman/rest/users.py
parentb8cf7e9df8bd9e979a3236054caaf4d28af35a94 (diff)
downloadmailman-d8ecd977cf11b60ce4851315ecc9855be71d9596.tar.gz
mailman-d8ecd977cf11b60ce4851315ecc9855be71d9596.tar.zst
mailman-d8ecd977cf11b60ce4851315ecc9855be71d9596.zip
Diffstat (limited to 'src/mailman/rest/users.py')
-rw-r--r--src/mailman/rest/users.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/mailman/rest/users.py b/src/mailman/rest/users.py
index b8972f3f5..9a00cecd2 100644
--- a/src/mailman/rest/users.py
+++ b/src/mailman/rest/users.py
@@ -95,8 +95,21 @@ class AllUsers(_UserBase):
class AUser(_UserBase):
"""A user."""
- def __init__(self, user_id):
- self._user = getUtility(IUserManager).get_user_by_id(user_id)
+ def __init__(self, user_identifier):
+ """Get a user by various type of identifiers.
+
+ :param user_identifier: The identifier used to retrieve the user. The
+ identifier may either be an integer user-id, or an email address
+ controlled by the user. The type of identifier is auto-detected
+ by looking for an `@` symbol, in which case it's taken as an email
+ address, otherwise it's assumed to be an integer.
+ :type user_identifier: str
+ """
+ user_manager = getUtility(IUserManager)
+ if '@' in user_identifier:
+ self._user = user_manager.get_user(user_identifier)
+ else:
+ self._user = user_manager.get_user_by_id(user_identifier)
@resource.GET()
def user(self, request):