diff --git a/internal/importexport/release_notes.go b/internal/importexport/release_notes.go index 7a68c97c..52583fb6 100644 --- a/internal/importexport/release_notes.go +++ b/internal/importexport/release_notes.go @@ -15,11 +15,12 @@ // You should have received a copy of the GNU General Public License // along with ProtonMail Bridge. If not, see . -// Code generated by ./release-notes.sh at 'Fri Aug 21 09:35:33 CEST 2020'. DO NOT EDIT. +// Code generated by ./release-notes.sh at 'Fri Aug 21 14:17:14 CEST 2020'. DO NOT EDIT. package importexport -const ReleaseNotes = `• Complete code refactor in preparation of live release and open source of the Import-Export app +const ReleaseNotes = `• Note: you need to log in again +• Complete code refactor in preparation of live release and open source of the Import-Export app • Increased number of supported mail providers by changing the way the folder structures are handled (NIL hierarchy delimiter) • Improved handling for unstable internet and pause & resume behavior ` diff --git a/internal/users/credentials/store.go b/internal/users/credentials/store.go index e2824e0c..8341fa15 100644 --- a/internal/users/credentials/store.go +++ b/internal/users/credentials/store.go @@ -186,6 +186,13 @@ func (s *Store) List() (userIDs []string, err error) { continue } + // Old credentials using username as a key does not work with new code. + // We need to ask user to login again to get ID from API and migrate creds. + if creds.UserID == creds.Name && creds.APIToken != "" { + creds.Logout() + _ = s.saveCredentials(creds) + } + credentialList = append(credentialList, creds) } diff --git a/internal/users/users.go b/internal/users/users.go index e0c18e2d..62c6cf20 100644 --- a/internal/users/users.go +++ b/internal/users/users.go @@ -249,6 +249,14 @@ func (u *Users) FinishLogin(authClient pmapi.Client, auth *pmapi.Auth, mbPassphr } } + // Old credentials use username as key (user ID) which needs to be removed + // once user logs in again with proper ID fetched from API. + if _, ok := u.hasUser(apiUser.Name); ok { + if err := u.DeleteUser(apiUser.Name, true); err != nil { + log.WithError(err).Error("Failed to delete old user") + } + } + u.events.Emit(events.UserRefreshEvent, apiUser.ID) return u.GetUser(apiUser.ID) diff --git a/release-notes/notes-importexport.txt b/release-notes/notes-importexport.txt index 9d2dbdc2..d4b2a758 100644 --- a/release-notes/notes-importexport.txt +++ b/release-notes/notes-importexport.txt @@ -1,3 +1,4 @@ +• Note: you need to log in again • Complete code refactor in preparation of live release and open source of the Import-Export app • Increased number of supported mail providers by changing the way the folder structures are handled (NIL hierarchy delimiter) • Improved handling for unstable internet and pause & resume behavior