feat(GODT-2709): Remove the config status file when user is removed.

This commit is contained in:
Romain LE JEUNE
2023-06-30 14:48:42 +02:00
parent 72911235c5
commit ac75410657
3 changed files with 16 additions and 4 deletions

View File

@ -601,8 +601,8 @@ func (bridge *Bridge) logoutUser(ctx context.Context, user *user.User, withAPI,
defer delete(bridge.users, user.ID())
// if this is actually a remove account
if withTelemetry && withData && withAPI {
user.SendConfigStatusAbort()
if withData && withAPI {
user.SendConfigStatusAbort(withTelemetry)
}
logrus.WithFields(logrus.Fields{

View File

@ -170,6 +170,12 @@ func (status *ConfigurationStatus) AutoconfigUsed(client string) error {
return nil
}
func (status *ConfigurationStatus) Remove() error {
status.DataLock.Lock()
defer status.DataLock.Unlock()
return os.Remove(status.FilePath)
}
func (data *ConfigurationStatusData) init() {
data.Metadata = Metadata{
Version: version,

View File

@ -57,11 +57,17 @@ func (user *User) SendConfigStatusSuccess() {
}
}
func (user *User) SendConfigStatusAbort() {
func (user *User) SendConfigStatusAbort(withTelemetry bool) {
if err := user.configStatus.Remove(); err != nil {
user.log.WithError(err).Error("Failed to remove config_status file.")
}
if !user.configStatus.IsPending() {
return
}
if !withTelemetry {
return
}
var builder configstatus.ConfigAbortBuilder
abort := builder.New(user.configStatus.Data)
data, err := json.Marshal(abort)