This is because the subscription that it refers to is actually a page for a token that may not exist yet, and it normally gets generated when a user first visits the page via a POST form. To make this URL shareable, we need to make a GET on that page non-idempotent (which is fine, because only one user can access the final URL that +me resolves to) and activate the token on first access.
Then, we can take the following actions when someone visits the URL:
* if I have access to the PPA and I have a token, I get to manage my subscription to it
* If I have access but I don't have a token, it will activate the token
* if I don't have access, I'm politely told that
* if the PPA doesn't exist, I get told that nicely too!
We should also make the URL a bit more readable and use something like this:
The current URL schema for an archive subscription looks something like this:
https:/ /edge.launchpad .net/~julian- edwards/ +archivesubscri ptions/ 2784
where the number at the end is an internal archive ID. However this is not "shareable" between users because we can't do this:
https:/ /edge.launchpad .net/people/ +me/+archivesub scriptions/ 2784
This is because the subscription that it refers to is actually a page for a token that may not exist yet, and it normally gets generated when a user first visits the page via a POST form. To make this URL shareable, we need to make a GET on that page non-idempotent (which is fine, because only one user can access the final URL that +me resolves to) and activate the token on first access.
Then, we can take the following actions when someone visits the URL:
* if I have access to the PPA and I have a token, I get to manage my subscription to it
* If I have access but I don't have a token, it will activate the token
* if I don't have access, I'm politely told that
* if the PPA doesn't exist, I get told that nicely too!
We should also make the URL a bit more readable and use something like this:
https:/ /edge.launchpad .net/people/ +me/+archivesub scriptions/ ~soyuz- team/ppa
instead of the ID string.