fix(sites): roll back failed domain claims (#119)
Some checks are pending
CI / build (push) Waiting to run
deploy / deploy (push) Waiting to run
test / test (push) Waiting to run

* test(sites): reproduce stale failed domain claims

Signed-off-by: RissRIce <jsdavid278@gmail.com>

* fix(sites): roll back failed domain claims

Signed-off-by: RissRIce <jsdavid278@gmail.com>

---------

Signed-off-by: RissRIce <jsdavid278@gmail.com>
This commit is contained in:
RissRIce 2026-08-13 03:34:30 -06:00 committed by GitHub
parent 5a1f5d90db
commit 4b815eaab8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 87 additions and 10 deletions

View file

@ -72,10 +72,19 @@ func (m *Manager) Add(domain, username string) (string, error) {
if !Valid(domain) {
return "", ErrInvalidDomain
}
if err := m.st.MapDomain(domain, username); err != nil {
created, err := m.st.MapDomain(domain, username)
if err != nil {
return domain, err
}
return domain, m.link(domain, username)
if err := m.link(domain, username); err != nil {
if created {
if rollbackErr := m.st.UnmapDomain(domain, username); rollbackErr != nil {
return domain, errors.Join(err, rollbackErr)
}
}
return domain, err
}
return domain, nil
}
// Remove unmaps a domain owned by username (DB row + symlink).