mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-26 06:19:08 +01:00
[client] Clear the removed profile's email by its resolved ID
RemoveProfile takes a handle — a display name or an ID prefix resolve just as well as a full ID — but the state file holding the account email is named after the ID. Passing the request handle straight through therefore named a different file, or none, leaving the email behind for a recreated profile to inherit. The daemon already echoes back the ID it resolved for exactly this purpose; use it.
This commit is contained in:
@@ -153,10 +153,11 @@ func (s *Profiles) Remove(ctx context.Context, p ProfileRef) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err = cli.RemoveProfile(ctx, &proto.RemoveProfileRequest{
|
resp, err := cli.RemoveProfile(ctx, &proto.RemoveProfileRequest{
|
||||||
ProfileName: p.ProfileName,
|
ProfileName: p.ProfileName,
|
||||||
Username: p.Username,
|
Username: p.Username,
|
||||||
}); err != nil {
|
})
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,10 +166,14 @@ func (s *Profiles) Remove(ctx context.Context, p ProfileRef) error {
|
|||||||
// Connection.Logout). Legacy profiles are keyed by name rather than by a
|
// Connection.Logout). Legacy profiles are keyed by name rather than by a
|
||||||
// generated ID, so a recreated profile of the same name would inherit the
|
// generated ID, so a recreated profile of the same name would inherit the
|
||||||
// deleted one's email and offer it as the login_hint.
|
// deleted one's email and offer it as the login_hint.
|
||||||
if p.ProfileName != "" {
|
//
|
||||||
if err := profilemanager.NewProfileManager().RemoveProfileState(p.ProfileName); err != nil {
|
// Keyed on the ID the daemon resolved, not on the request handle: that may
|
||||||
|
// have been a display name or an ID prefix, which would name a different
|
||||||
|
// file (or none).
|
||||||
|
if id := resp.GetId(); id != "" {
|
||||||
|
if err := profilemanager.NewProfileManager().RemoveProfileState(id); err != nil {
|
||||||
// Non-fatal: the profile itself is gone.
|
// Non-fatal: the profile itself is gone.
|
||||||
log.Warnf("failed to remove profile state for %s: %v", p.ProfileName, err)
|
log.Warnf("failed to remove profile state for %s: %v", id, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user