cylc / cylc-ui

Web app for monitoring and controlling Cylc workflows

Home Page:https://cylc.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

multi-user: better display of user information and easier server switching

oliver-sanders opened this issue · comments

Terminology

  • User - The authorised user, i.e. the person looking at the web browser.
  • Owner - The user account running the server, i.e. the person who's workflows the user is looking at.
  • Deployment - The Cylc Hub instance we are logged in to. Note, there may be more than one, e.g. research and production deployments might be separate.

Multi user functionality is a little rough around the edges at the moment:

  • It isn't especially obvious who the server owner is. Their username is in the URL but that's not especially obvious.
  • The user's username is displayed in the top left but it's not especially obvious that it's their username not the owner.
  • There is no way to switch users without editing the URL.
  • There is not way to switch deployments without editing the URL.

Suggestions:

  1. Display the user in the top right in a circle avatar thinggy.
    • This has become the standard way to display the authenticated user which is now the way it is displayed in Jupyter Lab.
    • Put the user's initials in a circle.
    • Attach a link to the user-profile to this avatar for easy access to the Cylc "settings".
  2. Display the owner in the top left.
  3. Make the owner field editable.
    • When the value is changed, the page should redirect or open a new browser tab as a way of changing server.
    • We can't necessarily list user accounts, but we can remember previous values to cut down on typing.
    • We may open up the ability to configure this, or hook into the Jupyter Hub API for user listing where functional and authorised, so keep in mind that we may want to inject initial values for this field.
  4. Make the deployment editable (some day)
    • One day we may allow sites to configure the URLs of their different cylc hub deployments.
    • If and when, we could also make this field editable for easy deployment switching.

Illustrative Example:

auth