URL redesign for /-/user
The user-specific URL structure currently hardwire that views can only show information about the current user.
This is an attempt to change the URL structure so that it contains the username, and so that some views can show limited information about other users.
Current URL structure
This is the current situation for /-/user/
URLs:
/-/user/logout/
/-/user/token/
/-/user/token/<int:pk>/delete/
/-/user/token/<int:pk>/edit/
/-/user/token/create/
Proposed URL structure
This is the proposed URL structure:
/-/logout/
/-/user/<username>/token/
/-/user/<username>/token/<int:pk>/delete/
/-/user/<username>/token/<int:pk>/edit/
/-/user/<username>/token/create/
Logout would be moved next to /-/login
, and it’s the only view that both
only makes sense for the currently logged in user, and is delegating to
Django’s logout view which assumes that.
The rest of the moves also make space for an upcoming user display view (see MR !1486 <https://salsa.debian.org/freexian-team/debusine/-/merge_requests/1486>):
/-/user/<username>/
Permission checking
Existing token views need to do permission checking to see if the currently logged in user can manage tokens for the selected user.
By default we can mandate that this is only allowed if the currently logged in user is the selected user, and this could leave the possibility open for having things like admins or other figures be able to manage tokens for other users.
Possible examples of this:
Allow an admin to see what scopes (or similar) a user has tokens for, without showing any secrets, so that they can debug auth failures.
Administratively revoke a token.