mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-22 11:59:40 +01:00
commit
e993672a0f
@ -1361,6 +1361,7 @@ func (am *AccountManager) Unregister(account string, erase bool) error {
|
||||
lastSeenKey := fmt.Sprintf(keyAccountLastSeen, casefoldedAccount)
|
||||
unregisteredKey := fmt.Sprintf(keyAccountUnregistered, casefoldedAccount)
|
||||
modesKey := fmt.Sprintf(keyAccountModes, casefoldedAccount)
|
||||
realnameKey := fmt.Sprintf(keyAccountRealname, casefoldedAccount)
|
||||
|
||||
var clients []*Client
|
||||
defer func() {
|
||||
@ -1419,6 +1420,7 @@ func (am *AccountManager) Unregister(account string, erase bool) error {
|
||||
tx.Delete(joinedChannelsKey)
|
||||
tx.Delete(lastSeenKey)
|
||||
tx.Delete(modesKey)
|
||||
tx.Delete(realnameKey)
|
||||
|
||||
_, err := tx.Delete(vhostQueueKey)
|
||||
am.decrementVHostQueueCount(casefoldedAccount, err)
|
||||
|
@ -24,7 +24,7 @@ const (
|
||||
// 'version' of the database schema
|
||||
keySchemaVersion = "db.version"
|
||||
// latest schema of the db
|
||||
latestDbSchema = "15"
|
||||
latestDbSchema = "16"
|
||||
|
||||
keyCloakSecret = "crypto.cloak_secret"
|
||||
)
|
||||
@ -812,6 +812,29 @@ func schemaChangeV14ToV15(config *Config, tx *buntdb.Tx) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// #1330: delete any stale realname records
|
||||
func schemaChangeV15ToV16(config *Config, tx *buntdb.Tx) error {
|
||||
prefix := "account.realname "
|
||||
verifiedPrefix := "account.verified "
|
||||
var keys []string
|
||||
tx.AscendGreaterOrEqual("", prefix, func(key, value string) bool {
|
||||
if !strings.HasPrefix(key, prefix) {
|
||||
return false
|
||||
}
|
||||
acct := strings.TrimPrefix(key, prefix)
|
||||
verifiedKey := verifiedPrefix + acct
|
||||
_, verifiedErr := tx.Get(verifiedKey)
|
||||
if verifiedErr != nil {
|
||||
keys = append(keys, key)
|
||||
}
|
||||
return true
|
||||
})
|
||||
for _, key := range keys {
|
||||
tx.Delete(key)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
allChanges := []SchemaChange{
|
||||
{
|
||||
@ -884,6 +907,11 @@ func init() {
|
||||
TargetVersion: "15",
|
||||
Changer: schemaChangeV14ToV15,
|
||||
},
|
||||
{
|
||||
InitialVersion: "15",
|
||||
TargetVersion: "16",
|
||||
Changer: schemaChangeV15ToV16,
|
||||
},
|
||||
}
|
||||
|
||||
// build the index
|
||||
|
Loading…
Reference in New Issue
Block a user