forked from Silverfish/proton-bridge
feat(GODT-2709): Remove the config status file when user is removed.
This commit is contained in:
@ -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{
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user