This commit is contained in:
2026-08-24 04:03:44 +02:00
parent 8a690a0464
commit 7bafd7a322
9 changed files with 391 additions and 53 deletions
@@ -50,6 +50,12 @@ func (s *Server) handleRegister(w http.ResponseWriter, r *http.Request) {
return
}
_ = s.Billing.ProvisionFreePlan(r.Context(), res.CompanyID)
for _, cid := range res.ProvisionCompanyIDs {
if cid == res.CompanyID {
continue
}
_ = s.Billing.ProvisionFreePlan(r.Context(), cid)
}
if err := s.beginAuthenticatedSession(r.Context(), res.User.ID, res.CompanyID); err != nil {
Error(w, http.StatusInternalServerError, "session start failed")
return
@@ -236,6 +242,14 @@ func (s *Server) handleInvitePreview(w http.ResponseWriter, r *http.Request) {
"valid": true,
"mismatch": false,
}
if mode == "invite" {
pwMode, err := s.Auth.InvitePasswordMode(r.Context(), inviteEmail)
if err != nil {
ClientOrLog(w, http.StatusBadRequest, "invite preview failed", err, auth.ClientError)
return
}
out["password_mode"] = pwMode
}
if sessionEmail, ok := s.sessionUserEmail(r.Context()); ok {
out["session_email"] = sessionEmail
if !auth.EmailsEqual(sessionEmail, inviteEmail) {
@@ -285,6 +299,9 @@ func (s *Server) handleAcceptInvite(w http.ResponseWriter, r *http.Request) {
ClientOrLog(w, http.StatusBadRequest, "invite accept failed", err, auth.ClientError)
return
}
for _, cid := range res.ProvisionCompanyIDs {
_ = s.Billing.ProvisionFreePlan(r.Context(), cid)
}
if err := s.beginAuthenticatedSession(r.Context(), res.User.ID, res.CompanyID); err != nil {
Error(w, http.StatusInternalServerError, "session start failed")
return