Add Syndicate Invite Token System (Secure Links)

- Added route + handler: GenerateInviteLinkHandler to create signed tokens
- Added handler: JoinSyndicateWithTokenHandler to join using invite token
- Integrated secure token generation via helpers.GenerateSecureToken()
- Created DB model: syndicate_invite_tokens (assumed pre-existing)
- Updated syndicate view template to allow managers to generate links
- Flash messaging for invite success/failure
- Invite links are scoped to manager role and valid for 48 hours
This commit is contained in:
2025-04-04 22:33:40 +01:00
parent 8b02a3137d
commit 152c5cb18c
6 changed files with 146 additions and 6 deletions

15
helpers/token.go Normal file
View File

@@ -0,0 +1,15 @@
package helpers
import (
"crypto/rand"
"encoding/hex"
)
func GenerateSecureToken() (string, error) {
b := make([]byte, 32)
_, err := rand.Read(b)
if err != nil {
return "", err
}
return hex.EncodeToString(b), nil
}