3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-14 16:09:32 +01:00

support certfp import

This commit is contained in:
Shivaram Lingamneni 2020-12-04 04:37:24 -05:00
parent 3aeac42978
commit 32f3c69a08

View File

@ -30,6 +30,7 @@ type userImport struct {
RegisteredAt int64 `json:"registeredAt"` RegisteredAt int64 `json:"registeredAt"`
Vhost string Vhost string
AdditionalNicks []string `json:"additionalNicks"` AdditionalNicks []string `json:"additionalNicks"`
Certfps []string
} }
type channelImport struct { type channelImport struct {
@ -83,9 +84,19 @@ func doImportDBGeneric(config *Config, dbImport databaseImport, credsType Creden
log.Printf("invalid username %s: %v", username, err) log.Printf("invalid username %s: %v", username, err)
continue continue
} }
var certfps []string
for _, certfp := range userInfo.Certfps {
normalizedCertfp, err := utils.NormalizeCertfp(certfp)
if err == nil {
certfps = append(certfps, normalizedCertfp)
} else {
log.Printf("invalid certfp %s for %s\n", username, certfp)
}
}
credentials := AccountCredentials{ credentials := AccountCredentials{
Version: credsType, Version: credsType,
PassphraseHash: []byte(userInfo.Hash), PassphraseHash: []byte(userInfo.Hash),
Certfps: certfps,
} }
marshaledCredentials, err := json.Marshal(&credentials) marshaledCredentials, err := json.Marshal(&credentials)
if err != nil { if err != nil {
@ -104,6 +115,9 @@ func doImportDBGeneric(config *Config, dbImport databaseImport, credsType Creden
if len(userInfo.AdditionalNicks) != 0 { if len(userInfo.AdditionalNicks) != 0 {
tx.Set(fmt.Sprintf(keyAccountAdditionalNicks, cfUsername), marshalReservedNicks(userInfo.AdditionalNicks), nil) tx.Set(fmt.Sprintf(keyAccountAdditionalNicks, cfUsername), marshalReservedNicks(userInfo.AdditionalNicks), nil)
} }
for _, certfp := range certfps {
tx.Set(fmt.Sprintf(keyCertToAccount, certfp), cfUsername, nil)
}
} }
for chname, chInfo := range dbImport.Channels { for chname, chInfo := range dbImport.Channels {