Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Feature] Add option to disable email verification on registration

Aperta
#1,517 1 commento 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
55/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
go, typescript

Direzione di ricerca

Inizia da internal/schema/siteinfo_schema.go e segui il flusso di registrazione in internal/service/content/user_service.go, quindi esamina internal/controller_admin/siteinfo_controller.go e i componenti di amministrazione in ui/src/admin/pages/site/. Esegui i test esistenti per la registrazione e le informazioni del sito, se disponibili. Il lavoro è completato quando l’impostazione è esposta e persistita, richiede la verifica per impostazione predefinita, modifica correttamente lo stato della registrazione ed è controllabile dal pannello di amministrazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Feature Request: Allow admin to disable email verification requirement

Problem

Currently, Apache Answer always requires email verification after registration. Users cannot access the platform until they click the verification link in their email.

This is problematic because:

  • Many users don't receive or check the verification email
  • It creates friction in user onboarding
  • Some deployments (internal networks, dev environments) don't need email verification
Proposed Solution

Add an admin configuration option to allow users to use the platform immediately after registration without email verification.

Technical Changes Required
1. Schema Changes

File: internal/schema/siteinfo_schema.go

type SiteLoginReq struct {
    AllowNewRegistrations    bool     `json:"allow_new_registrations"`
    AllowEmailRegistrations bool     `json:"allow_email_registrations"`
    AllowPasswordLogin      bool     `json:"allow_password_login"`
    AllowEmailDomains       []string `json:"allow_email_domains"`
    RequireEmailVerification bool    `json:"require_email_verification"` // NEW
}
2. Registration Logic

File: internal/service/content/user_service.go

Current behavior (line ~471):

userInfo.MailStatus = entity.EmailStatusToBeVerified  // Always unverified

New behavior:

if requireEmailVerification {
    userInfo.MailStatus = entity.EmailStatusToBeVerified
} else {
    userInfo.MailStatus = entity.EmailStatusAvailable  // Verified immediately
}
3. Admin API

File: internal/controller_admin/siteinfo_controller.go

  • Update SiteLoginReq struct to include new field
  • Ensure admin can toggle this setting
4. Frontend Admin Panel

File: ui/src/admin/pages/site/ (or similar)

  • Add toggle switch for "Require Email Verification" in login settings
Default Behavior
  • RequireEmailVerification = true (maintain backward compatibility)
  • Admin can set to false to allow immediate access after registration
Database Changes

None required - existing mail_status field already supports both states:

  • 1 = EmailStatusAvailable (verified)
  • 2 = EmailStatusToBeVerified (pending)
Testing Checklist
  • New user registration with verification enabled → mail_status = 2
  • New user registration with verification disabled → mail_status = 1
  • Admin can toggle the setting via admin panel
  • API returns correct value for require_email_verification
  • Existing users with mail_status = 2 still need to verify (if required)
Related Files
  • internal/schema/siteinfo_schema.go
  • internal/service/content/user_service.go
  • internal/controller_admin/siteinfo_controller.go
  • internal/service/siteinfo_common/siteinfo_service.go
  • ui/src/ (admin panel components)
Lingua principale
Go
Stelle
15.7k
Fork
1.4k
Merge medio
1g 20h
PR unite (30g)
6

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/answer

Tutte le issue di apache/answer

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.