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:
parent
3aeac42978
commit
32f3c69a08
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user