Instead of retrieving the permission from the session cookie, store permission data from /session/, and cache it in a cookie. On subsequent page loads, the permission information will be retrieved from the cookie more quickly than the /session/ endpoint returns. When the session changes, the cookie and permissions state is updated to reflect the new state.
Previously requests to /session/ would return a signal to redirect, but we need /session/ to complete registration. So check if we should redirect when we retrieve the session.
Also update this behavior for banned users.
* 'feature/teacher-registration-flow' of https://github.com/rschamp/scratch-www: (46 commits)
Add serverside email validation
Clean up
Move registration step to main component
Submit the rest of the fields when registering
This help text is redundant now
Fix organization "other" field enablement
Get the form creating regular accounts
Add method to api for submitting forms
Update language chooser for formsy
Add missing string
Add progress indicators
Style pass
Remove unused label component
Remove unused mixin factory
Fixup api refactor
Add serverside username validation
L10n pass
Explain the GeneralError component
Add help text when a field is not required
L10n WIP
...
# Conflicts:
# src/l10n.json
# src/views/splash/splash.jsx
1. split `auth.js` up so it's 1 reducer per file
2. consolidate the conference schedule reducers
3. make conference reducer names more descriptive
4. add error handling for `body === 'undefined'`
Thanks @rschamp for all the help!
Use a model of reducer/action files for each component that has them, and make `reducer.js` be the one that imports and configures all of them. This modeling is based on a few examples I've seen which seemed to work for our current case, but I'm totally fine with splitting actions and reducers into separate directories if we'd like too.