mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-26 13:59:44 +01:00
commit
e993672a0f
@ -1361,6 +1361,7 @@ func (am *AccountManager) Unregister(account string, erase bool) error {
|
|||||||
lastSeenKey := fmt.Sprintf(keyAccountLastSeen, casefoldedAccount)
|
lastSeenKey := fmt.Sprintf(keyAccountLastSeen, casefoldedAccount)
|
||||||
unregisteredKey := fmt.Sprintf(keyAccountUnregistered, casefoldedAccount)
|
unregisteredKey := fmt.Sprintf(keyAccountUnregistered, casefoldedAccount)
|
||||||
modesKey := fmt.Sprintf(keyAccountModes, casefoldedAccount)
|
modesKey := fmt.Sprintf(keyAccountModes, casefoldedAccount)
|
||||||
|
realnameKey := fmt.Sprintf(keyAccountRealname, casefoldedAccount)
|
||||||
|
|
||||||
var clients []*Client
|
var clients []*Client
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -1419,6 +1420,7 @@ func (am *AccountManager) Unregister(account string, erase bool) error {
|
|||||||
tx.Delete(joinedChannelsKey)
|
tx.Delete(joinedChannelsKey)
|
||||||
tx.Delete(lastSeenKey)
|
tx.Delete(lastSeenKey)
|
||||||
tx.Delete(modesKey)
|
tx.Delete(modesKey)
|
||||||
|
tx.Delete(realnameKey)
|
||||||
|
|
||||||
_, err := tx.Delete(vhostQueueKey)
|
_, err := tx.Delete(vhostQueueKey)
|
||||||
am.decrementVHostQueueCount(casefoldedAccount, err)
|
am.decrementVHostQueueCount(casefoldedAccount, err)
|
||||||
|
@ -24,7 +24,7 @@ const (
|
|||||||
// 'version' of the database schema
|
// 'version' of the database schema
|
||||||
keySchemaVersion = "db.version"
|
keySchemaVersion = "db.version"
|
||||||
// latest schema of the db
|
// latest schema of the db
|
||||||
latestDbSchema = "15"
|
latestDbSchema = "16"
|
||||||
|
|
||||||
keyCloakSecret = "crypto.cloak_secret"
|
keyCloakSecret = "crypto.cloak_secret"
|
||||||
)
|
)
|
||||||
@ -812,6 +812,29 @@ func schemaChangeV14ToV15(config *Config, tx *buntdb.Tx) error {
|
|||||||
return nil
|
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() {
|
func init() {
|
||||||
allChanges := []SchemaChange{
|
allChanges := []SchemaChange{
|
||||||
{
|
{
|
||||||
@ -884,6 +907,11 @@ func init() {
|
|||||||
TargetVersion: "15",
|
TargetVersion: "15",
|
||||||
Changer: schemaChangeV14ToV15,
|
Changer: schemaChangeV14ToV15,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
InitialVersion: "15",
|
||||||
|
TargetVersion: "16",
|
||||||
|
Changer: schemaChangeV15ToV16,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// build the index
|
// build the index
|
||||||
|
Loading…
Reference in New Issue
Block a user