Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Login system #890

Open
ap0nia opened this issue Feb 7, 2024 · 0 comments
Open

RFC: Login system #890

ap0nia opened this issue Feb 7, 2024 · 0 comments
Labels

Comments

@ap0nia
Copy link
Collaborator

ap0nia commented Feb 7, 2024

Central login location -> either login with username or with Google
Once a user is logged in, the website is synchronized and identifies them to one account

If user is logged in with Google, a "import from legacy account" button will exist.
They hit the button to open up a dialogue, enter their legacy username, and submitting copies that schedule from legacy schedules.
Google authenticated users can make their schedule private, public, or open

  • private: only the owner can view
  • public readonly: other users can view, but can't edit
  • open: anybody can edit

table
columns

  • user ID / username
  • google ID
  • schedule
  • visibility

Given a google ID:
find the corresponding google ID and load the schedule

Given a username:

  • find the user name
  • if they have a visiblity field, then verify that before loading the schedule

Legacy username and custom username mapped to Google ID supported

Login UI

  • Login button
  • opens up a modal with two options
  • login with username (i.e. either legacy or Google)
  • login with Google OAuth (redirect link)

After user logs in
They can remap a custom, unique username to their Google ID

  • If this unique username is taken, action fails
  • If it is available, succeed

Import Button

  • import schedule from username

Viewing schedules

  • If user views different account, don't automatically save if not same credentials as saved

Userflow: TODO

RFC: Only put account related buttons in the header, and put schedule related buttons, e.g. exporting, somewhere lower in the app

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: In Progress 🤠
Development

No branches or pull requests

1 participant