29 lines
678 B
Go
29 lines
678 B
Go
package database
|
|
|
|
import (
|
|
"RenewCMS/internal/domain/role"
|
|
entity "RenewCMS/internal/infrastructure/persistence/models"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func BackfillInviteRoles(db *gorm.DB) error {
|
|
if !legacyRoleColumnExists(db) {
|
|
return nil
|
|
}
|
|
return db.Transaction(func(tx *gorm.DB) error {
|
|
done, err := markerApplied(tx, inviteRolesMarker)
|
|
if err != nil || done {
|
|
return err
|
|
}
|
|
adminID, err := requireBuiltInRoleID(tx, role.AdminName)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if err := tx.Model(&entity.Invite{}).Where("role_id IS NULL OR role_id = 0").UpdateColumn("role_id", adminID).Error; err != nil {
|
|
return err
|
|
}
|
|
return applyMarker(tx, inviteRolesMarker)
|
|
})
|
|
}
|