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 6df5a82364
commit 234554b459
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()) defer delete(bridge.users, user.ID())
// if this is actually a remove account // if this is actually a remove account
if withTelemetry && withData && withAPI { if withData && withAPI {
user.SendConfigStatusAbort() user.SendConfigStatusAbort(withTelemetry)
} }
logrus.WithFields(logrus.Fields{ logrus.WithFields(logrus.Fields{

View File

@ -170,6 +170,12 @@ func (status *ConfigurationStatus) AutoconfigUsed(client string) error {
return nil return nil
} }
func (status *ConfigurationStatus) Remove() error {
status.DataLock.Lock()
defer status.DataLock.Unlock()
return os.Remove(status.FilePath)
}
func (data *ConfigurationStatusData) init() { func (data *ConfigurationStatusData) init() {
data.Metadata = Metadata{ data.Metadata = Metadata{
Version: version, 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() { if !user.configStatus.IsPending() {
return return
} }
if !withTelemetry {
return
}
var builder configstatus.ConfigAbortBuilder var builder configstatus.ConfigAbortBuilder
abort := builder.New(user.configStatus.Data) abort := builder.New(user.configStatus.Data)
data, err := json.Marshal(abort) data, err := json.Marshal(abort)