SurfSense/surfsense_web
Ojārs Kapteinis b8bb74ec3e Add disable_registration toggle to site configuration
Implemented comprehensive registration control system that allows administrators to disable new user registrations through the admin panel. This provides better control over user access and supports closed registration scenarios.

Backend changes:
- Added disable_registration field to SiteConfiguration model (db.py)
- Created migration #39 to add disable_registration column with default false
- Updated SiteConfigurationBase, Update, and Read schemas
- Enhanced registration_allowed() dependency to check database toggle
- Returns 403 with clear message when registration is disabled

Frontend changes:
- Added disable_registration to SiteConfig interface and default config
- Updated LocalLoginForm to conditionally hide "Sign up" link when disabled
- Added RouteGuard support for "registration" route key
- Protected /register page with RouteGuard (shows 404 when disabled)
- Added "Registration Control" section to admin site-settings page

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 14:28:16 +02:00
..
.vscode Initial formatting using biome 2025-07-27 10:05:37 -07:00
app Add disable_registration toggle to site configuration 2025-11-18 14:28:16 +02:00
atoms clean up 2025-11-17 08:10:12 +02:00
components Add disable_registration toggle to site configuration 2025-11-18 14:28:16 +02:00
content/docs Fix documentation: Remove deleted Google OAuth images, clarify auth is email-only 2025-11-18 14:05:55 +02:00
contexts Add disable_registration toggle to site configuration 2025-11-18 14:28:16 +02:00
contracts update login form 2025-11-17 08:10:12 +02:00
hooks feat: added global llm configurations 2025-11-14 21:53:46 -08:00
i18n feat(removed): sub_section_writer 2025-10-27 20:30:10 -07:00
lib fix build error 2025-11-17 08:10:12 +02:00
messages feat: improved onboarding 2025-11-16 15:54:54 -08:00
public Implement dynamic social media link management system 2025-11-17 20:44:17 +00:00
.cursorrules feat: monorepo 2025-04-07 23:47:06 -07:00
.dockerignore feat: frontend docker to use nextjs production build 2025-10-23 20:37:01 -07:00
.env.example Remove Google OAuth from login/register, enforce email-only authentication 2025-11-18 14:04:38 +02:00
.gitignore feat(i18n): Add next-intl framework with full bilingual support (EN/ZH) 2025-10-26 17:18:57 +08:00
biome.json Added config for biome.js 2025-07-26 20:52:13 -07:00
components.json Initial formatting using biome 2025-07-27 10:05:37 -07:00
Dockerfile feat: frontend docker to use nextjs production build 2025-10-23 20:37:01 -07:00
drizzle.config.ts chore: biome checks 2025-10-15 14:38:26 -07:00
eslint.config.mjs Biome: fixes for eslint config 2025-07-27 11:47:38 -07:00
LICENSE feat: monorepo 2025-04-07 23:47:06 -07:00
mdx-components.tsx Initial formatting using biome 2025-07-27 10:05:37 -07:00
middleware.ts feat(removed): sub_section_writer 2025-10-27 20:30:10 -07:00
next.config.ts feat(removed): sub_section_writer 2025-10-27 20:30:10 -07:00
package-lock.json feat: monorepo 2025-04-07 23:47:06 -07:00
package.json chore(dependencies): update Next.js and add Google Analytics support 2025-11-13 03:38:36 -08:00
pnpm-lock.yaml chore(dependencies): update Next.js and add Google Analytics support 2025-11-13 03:38:36 -08:00
postcss.config.mjs Initial formatting using biome 2025-07-27 10:05:37 -07:00
source.config.ts Initial formatting using biome 2025-07-27 10:05:37 -07:00
tailwind.config.js Initial formatting using biome 2025-07-27 10:05:37 -07:00
tsconfig.json Initial formatting using biome 2025-07-27 10:05:37 -07:00