octave-online / octave-online-server

The infrastructure that powers Octave Online, octave-online.net
GNU Affero General Public License v3.0
322 stars 76 forks source link

Distinguish auth user from workspace owner throughout stack #41

Open sffc opened 3 years ago

sffc commented 3 years ago

When using buckets, collaborative workspaces, and projects, there are two users involved: the currently authenticated user, and the user who owns the bucket, workspace, or project. Right now, those two users are imperfectly separated throughout the stack, and it's unclear which type of user is given which capabilities.

Examples of operations where the auth user is correct:

  1. Signing in and out
  2. Changing a password
  3. Enable sharing for a workspace (if privileges are correct)
  4. Delete a bucket or project
  5. Patreon subscriptions

Examples of operations where the workspace owner is correct:

  1. Name at the top of the page of a shared workspace
  2. Tier and command timeout
  3. Target for Git commits