taipm opened a new issue, #1517:
URL: https://github.com/apache/answer/issues/1517
## 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`
```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):
```go
userInfo.MailStatus = entity.EmailStatusToBeVerified // Always unverified
```
New behavior:
```go
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)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]