Repository navigation
Add dashboard login and per-user data scoping - #2
Merged
Merged
Conversation
The web dashboard was public: anyone who could reach the server could browse every project and session. - Session login (/login, rate-limited to 5 attempts/min) and logout; every dashboard route now requires auth. No public registration — accounts are created with `php artisan movez:user <email>` - Dashboard counts, projects, sessions and the migration wizard only show the signed-in user's data; other users' records return 404 - Seeder adds a local-only demo login (demo@movez.test / password) used by the Playwright suite, which now signs in once via a setup project - CI runs the Playwright end-to-end suite - Docs: account creation and the removed "no login" warning Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The web dashboard had no authentication: anyone who could reach the server could browse every project and session. This was the top item on the README roadmap.
/loginand/logoutuse session auth. Login is rate-limited to 5 attempts per minute, and every dashboard route now requires sign-in.php artisan movez:user <email>, which asks for a password of at least 12 characters.project_id.demo@movez.test/password, but only whenAPP_ENVislocalortesting.Test plan
cd web && php artisan test: 39 passed, including new auth, throttling,movez:userand cross-user isolation testsnpm run type-checkandnpm run buildare clean/login, sign-in returns to the page originally requested, the dashboard shows only the user's own data, and sign-out works🤖 Generated with Claude Code