[Mailman-Developers] Mailman3: creating a user from an existing address
Hey people, I'm trying to create a User in Mailman 3 from an existing Address. If I were using the Python interface, that would be very easy: just create the user with no address and then link the existing address to it. However, I'm using the REST interface. In mailman.rest.users.AllUser.create(), there's a try/except block which explicitely looks for this case and raises an HTTP 400 error. Looking at the test_existing_user_error() test case, it's apparently to prevent creating a user twice, which is not my use case. Are you OK if I hack the code to automatically link to an existing address while still erroring-out if the user already exist? Or would it be better to allow linking to an existing address from the REST API? Cheers, Aurélien ___ Mailman-Developers mailing list Mailman-Developers@python.org https://mail.python.org/mailman/listinfo/mailman-developers Mailman FAQ: http://wiki.list.org/x/AgA3 Searchable Archives: http://www.mail-archive.com/mailman-developers%40python.org/ Unsubscribe: https://mail.python.org/mailman/options/mailman-developers/archive%40jab.org Security Policy: http://wiki.list.org/x/QIA9
Re: [Mailman-Developers] Mailman3: creating a user from an existing address
On Apr 25, 2014, at 04:55 PM, Aurelien Bompard wrote: I'm trying to create a User in Mailman 3 from an existing Address. If I were using the Python interface, that would be very easy: just create the user with no address and then link the existing address to it. So the address is currently unlinked? And you don't want to link it to an existing user, but to a new user you're about to create? However, I'm using the REST interface. In mailman.rest.users.AllUser.create(), there's a try/except block which explicitely looks for this case and raises an HTTP 400 error. Looking at the test_existing_user_error() test case, it's apparently to prevent creating a user twice, which is not my use case. Are you OK if I hack the code to automatically link to an existing address while still erroring-out if the user already exist? Or would it be better to allow linking to an existing address from the REST API? The other way to think about it is that you might want to create the user and link to it from the existing address resource, i.e. the AnAddress class. Right now, you cannot get directly from the address to its linked user, if it has one. Look at _AddressBase._resource_as_dict() in addresses.py. Sketching out an approach: - The address resource would gain a `user` key if there is a linked user. This would be a url to the user resource. If the address is unlinked, then there would be no such key. - AnAddress would gain a /user sub-resource which would either 404 if the address is unlinked or return the linked user's JSON data. - POSTing to /addresses/email/user would create a new user and link the address to it, but only if the address is not yet linked. If it's already linked, you'd get a 409 Conflict error. If the new user is created, you'd get 201 Created response. Additional use cases to consider: Q. What if the address is already linked and you want to unlink it? A. DELETE on the /addresses/email/user resource Q. What if you want to change the user the address is linked to? A. Currently, it's two operations: DELETE the existing link as above, then see below. The other option is to allow a PUT on the /addresses/email/user resource. Q. What if you want to link the unlinked address to an existing user? A. Maybe allow this in the POST to /addresses/email/user, i.e. the user would only be created if it doesn't yet exist. If it gets created, you'd get a 201 Created, but if it's just a link operation to an existing user, you'd get a 200 Success response. It's possibly you'd want to include POST boolean that specifies whether creating a new user is okay or not, with the appropriate response codes in the false case. -Barry ___ Mailman-Developers mailing list Mailman-Developers@python.org https://mail.python.org/mailman/listinfo/mailman-developers Mailman FAQ: http://wiki.list.org/x/AgA3 Searchable Archives: http://www.mail-archive.com/mailman-developers%40python.org/ Unsubscribe: https://mail.python.org/mailman/options/mailman-developers/archive%40jab.org Security Policy: http://wiki.list.org/x/QIA9
Re: [Mailman-Developers] Mailman3: creating a user from an existing address
So the address is currently unlinked? And you don't want to link it to an existing user, but to a new user you're about to create? Exactly. The address is unlinked and unverified. I'd like to create a user for it. Sketching out an approach: [...] Interesting. I'll look into that at some point, but I have a few more urgent things to do, so if someone wants to beat me to it feel free... ;-) A. ___ Mailman-Developers mailing list Mailman-Developers@python.org https://mail.python.org/mailman/listinfo/mailman-developers Mailman FAQ: http://wiki.list.org/x/AgA3 Searchable Archives: http://www.mail-archive.com/mailman-developers%40python.org/ Unsubscribe: https://mail.python.org/mailman/options/mailman-developers/archive%40jab.org Security Policy: http://wiki.list.org/x/QIA9
Re: [Mailman-Developers] Mailman3: creating a user from an existing address
On Apr 25, 2014, at 06:31 PM, Aurelien Bompard wrote: Interesting. I'll look into that at some point, but I have a few more urgent things to do, so if someone wants to beat me to it feel free... ;-) Can you open a bug? -Barry ___ Mailman-Developers mailing list Mailman-Developers@python.org https://mail.python.org/mailman/listinfo/mailman-developers Mailman FAQ: http://wiki.list.org/x/AgA3 Searchable Archives: http://www.mail-archive.com/mailman-developers%40python.org/ Unsubscribe: https://mail.python.org/mailman/options/mailman-developers/archive%40jab.org Security Policy: http://wiki.list.org/x/QIA9
Re: [Mailman-Developers] Mailman3: creating a user from an existing address
Can you open a bug? Done: https://bugs.launchpad.net/mailman/+bug/1312884 :-) A. ___ Mailman-Developers mailing list Mailman-Developers@python.org https://mail.python.org/mailman/listinfo/mailman-developers Mailman FAQ: http://wiki.list.org/x/AgA3 Searchable Archives: http://www.mail-archive.com/mailman-developers%40python.org/ Unsubscribe: https://mail.python.org/mailman/options/mailman-developers/archive%40jab.org Security Policy: http://wiki.list.org/x/QIA9