@@ -31,7 +31,9 @@ UserService::UserService(IUserStorageGateway* userStorageGateway) :
3131 // Tag changed
3232 connect (&m_user, &User::tagsChanged, this , &UserService::tagsChanged);
3333
34- // Fetch changes timer
34+
35+ // The timer which controls in which intervall we will check for new changes
36+ // to the user data on the server.
3537 m_fetchChangesTimer.setInterval (m_fetchChangesInverval);
3638 connect (&m_fetchChangesTimer, &QTimer::timeout, this ,
3739 [this ]()
@@ -42,19 +44,9 @@ UserService::UserService(IUserStorageGateway* userStorageGateway) :
4244
4345void UserService::loadUser (bool rememberUser)
4446{
45- utility::AutomaticLoginHelper autoLoginHelper;
46- auto result = autoLoginHelper.tryAutomaticUserLoading ();
47- if (result.has_value ())
48- {
49- utility::UserData userData = result.value ();
50- User user (userData.firstName , userData.lastName , userData.email );
51-
52- for (auto & tag : userData.tags )
53- user.addTag (tag);
54-
55- proccessUserInformation (user, true );
47+ auto success = tryLoadingUserFromFile ();
48+ if (success)
5649 return ;
57- }
5850
5951 m_rememberUser = rememberUser;
6052 m_userStorageGateway->getUser (m_authenticationToken);
@@ -168,26 +160,14 @@ void UserService::proccessUserInformation(const domain::entities::User& user,
168160 m_user.setFirstName (user.getFirstName ());
169161 m_user.setLastName (user.getLastName ());
170162 m_user.setEmail (user.getEmail ());
171-
172163 for (const auto & tag : user.getTags ())
173- {
174164 m_user.addTag (tag);
175- }
176165
177166 emit finishedLoadingUser (true );
178167
179168 if (m_rememberUser)
180- {
181- utility::AutomaticLoginHelper autoLoginHelper;
182- utility::UserData userData {
183- user.getFirstName (),
184- user.getLastName (),
185- user.getEmail (),
186- user.getTags (),
187- };
188-
189- autoLoginHelper.addUserData (userData);
190- }
169+ saveUserToFile (user);
170+
191171 clearRememberUser ();
192172}
193173
@@ -198,9 +178,42 @@ bool UserService::userIsLoggedIn()
198178
199179void UserService::clearRememberUser ()
200180{
181+ // This needs to be reset after every 'loadUser' request, else we might
182+ // save the data for the next user, even though they don't want it
201183 m_rememberUser = false ;
202184}
203185
186+ bool UserService::tryLoadingUserFromFile ()
187+ {
188+ utility::AutomaticLoginHelper autoLoginHelper;
189+ auto result = autoLoginHelper.tryAutomaticUserLoading ();
190+ if (result.has_value ())
191+ {
192+ utility::UserData userData = result.value ();
193+ User user (userData.firstName , userData.lastName , userData.email );
194+ for (auto & tag : userData.tags )
195+ user.addTag (tag);
196+
197+ proccessUserInformation (user, true );
198+ return true ;
199+ }
200+
201+ return false ;
202+ }
203+
204+ void UserService::saveUserToFile (const domain::entities::User& user)
205+ {
206+ utility::AutomaticLoginHelper autoLoginHelper;
207+ utility::UserData userData {
208+ user.getFirstName (),
209+ user.getLastName (),
210+ user.getEmail (),
211+ user.getTags (),
212+ };
213+
214+ autoLoginHelper.saveUserData (userData);
215+ }
216+
204217void UserService::setupUserData (const QString& token, const QString& email)
205218{
206219 Q_UNUSED (email);
0 commit comments