diff options
| author | Abhilash Raj | 2015-07-30 15:25:22 +0530 |
|---|---|---|
| committer | Abhilash Raj | 2015-07-30 15:25:22 +0530 |
| commit | c76660e4fd34948e96ea2a00b5f52f50b4845dda (patch) | |
| tree | d1e0d66efd4f41ee91e59c9d5c2154548a25b473 /src/mailman/rest/addresses.py | |
| parent | d903aa4ba57dc19699972bf22b7874edd90434a8 (diff) | |
| download | mailman-c76660e4fd34948e96ea2a00b5f52f50b4845dda.tar.gz mailman-c76660e4fd34948e96ea2a00b5f52f50b4845dda.tar.zst mailman-c76660e4fd34948e96ea2a00b5f52f50b4845dda.zip | |
Diffstat (limited to 'src/mailman/rest/addresses.py')
| -rw-r--r-- | src/mailman/rest/addresses.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mailman/rest/addresses.py b/src/mailman/rest/addresses.py index 9dbbf3fc8..c62048b6a 100644 --- a/src/mailman/rest/addresses.py +++ b/src/mailman/rest/addresses.py @@ -211,7 +211,15 @@ class UserAddresses(_AddressBase): except InvalidEmailAddressError: bad_request(response, b'Invalid email address') except ExistingAddressError: - bad_request(response, b'Address already exists') + # Check if the address is not linked to any user, link it to + # the current user and return it. + address = user_manager.get_address(**validator(request)) + if address.user is None: + address.user = self._user + location = self.path_to('addresses/{0}'.format(address.email)) + created(response, location) + else: + bad_request(response, 'Address belongs to other user.') else: # Link the address to the current user and return it. address.user = self._user |
