diff --git a/client/ui/event_handler.go b/client/ui/event_handler.go index e9b7f4f30f0..c0bc74a2c03 100644 --- a/client/ui/event_handler.go +++ b/client/ui/event_handler.go @@ -13,7 +13,6 @@ import ( "fyne.io/systray" log "github.com/sirupsen/logrus" - "github.com/netbirdio/netbird/client/proto" "github.com/netbirdio/netbird/version" ) @@ -232,19 +231,3 @@ func (h *eventHandler) runSelfCommand(ctx context.Context, command, arg string) log.Printf("command '%s %s' completed successfully", command, arg) } - -func (h *eventHandler) logout(ctx context.Context) error { - client, err := h.client.getSrvClient(defaultFailTimeout) - if err != nil { - return fmt.Errorf("failed to get service client: %w", err) - } - - _, err = client.Logout(ctx, &proto.LogoutRequest{}) - if err != nil { - return fmt.Errorf("logout failed: %w", err) - } - - h.client.getSrvConfig() - - return nil -} diff --git a/client/ui/profile.go b/client/ui/profile.go index f4505ab19e3..bd6c9e54940 100644 --- a/client/ui/profile.go +++ b/client/ui/profile.go @@ -40,13 +40,12 @@ func (s *serviceClient) showProfilesUI() { list := widget.NewList( func() int { return len(profiles) }, func() fyne.CanvasObject { - // Each item: Selected indicator, Name, spacer, Select, Logout & Remove buttons + // Each item: Selected indicator, Name, spacer, Select & Remove buttons return container.NewHBox( widget.NewLabel(""), // indicator widget.NewLabel(""), // profile name layout.NewSpacer(), widget.NewButton("Select", nil), - widget.NewButton("Deregister", nil), widget.NewButton("Remove", nil), ) }, @@ -56,8 +55,7 @@ func (s *serviceClient) showProfilesUI() { indicator := row.Objects[0].(*widget.Label) nameLabel := row.Objects[1].(*widget.Label) selectBtn := row.Objects[3].(*widget.Button) - logoutBtn := row.Objects[4].(*widget.Button) - removeBtn := row.Objects[5].(*widget.Button) + removeBtn := row.Objects[4].(*widget.Button) profile := profiles[i] // Show a checkmark if selected @@ -127,12 +125,6 @@ func (s *serviceClient) showProfilesUI() { ) } - logoutBtn.Show() - logoutBtn.SetText("Deregister") - logoutBtn.OnTapped = func() { - s.handleProfileLogout(profile.Name, refresh) - } - // Remove profile removeBtn.SetText("Remove") removeBtn.OnTapped = func() { @@ -332,52 +324,6 @@ func (s *serviceClient) getProfiles() ([]Profile, error) { return profiles, nil } -func (s *serviceClient) handleProfileLogout(profileName string, refreshCallback func()) { - dialog.ShowConfirm( - "Deregister", - fmt.Sprintf("Are you sure you want to deregister from '%s'?", profileName), - func(confirm bool) { - if !confirm { - return - } - - conn, err := s.getSrvClient(defaultFailTimeout) - if err != nil { - log.Errorf("failed to get service client: %v", err) - dialog.ShowError(fmt.Errorf("failed to connect to service"), s.wProfiles) - return - } - - currUser, err := user.Current() - if err != nil { - log.Errorf("failed to get current user: %v", err) - dialog.ShowError(fmt.Errorf("failed to get current user"), s.wProfiles) - return - } - - username := currUser.Username - _, err = conn.Logout(s.ctx, &proto.LogoutRequest{ - ProfileName: &profileName, - Username: &username, - }) - if err != nil { - log.Errorf("logout failed: %v", err) - dialog.ShowError(fmt.Errorf("deregister failed"), s.wProfiles) - return - } - - dialog.ShowInformation( - "Deregistered", - fmt.Sprintf("Successfully deregistered from '%s'", profileName), - s.wProfiles, - ) - - refreshCallback() - }, - s.wProfiles, - ) -} - type subItem struct { *systray.MenuItem ctx context.Context @@ -393,7 +339,6 @@ type profileMenu struct { emailMenuItem *systray.MenuItem profileSubItems []*subItem manageProfilesSubItem *subItem - logoutSubItem *subItem profilesState []Profile downClickCallback func() error upClickCallback func() error @@ -600,30 +545,6 @@ func (p *profileMenu) refresh() { } }() - // Add Logout menu item - ctx2, cancel2 := context.WithCancel(context.Background()) - logoutItem := p.profileMenuItem.AddSubMenuItem("Deregister", "") - p.logoutSubItem = &subItem{logoutItem, ctx2, cancel2} - - go func() { - for { - select { - case <-ctx2.Done(): - return - case _, ok := <-logoutItem.ClickedCh: - if !ok { - return - } - if err := p.eventHandler.logout(p.ctx); err != nil { - log.Errorf("logout failed: %v", err) - p.app.SendNotification(fyne.NewNotification("Error", "Failed to deregister")) - } else { - p.app.SendNotification(fyne.NewNotification("Success", "Deregistered successfully")) - } - } - } - }() - if activeProf.ProfileName == "default" || activeProf.Username == currUser.Username { p.profileMenuItem.SetTitle(activeProf.ProfileName) } else { @@ -646,12 +567,6 @@ func (p *profileMenu) clear(profiles []Profile) { p.manageProfilesSubItem.cancel() p.manageProfilesSubItem = nil } - - if p.logoutSubItem != nil { - p.logoutSubItem.Remove() - p.logoutSubItem.cancel() - p.logoutSubItem = nil - } } func (p *profileMenu) updateMenu() {