Skip to content

Commit 6503555

Browse files
committed
MOBILE-1399 site: Fix some DB errors due to logout
1 parent fb4c1d8 commit 6503555

File tree

4 files changed

+35
-7
lines changed

4 files changed

+35
-7
lines changed

www/addons/calendar/services/calendar.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,10 @@ angular.module('mm.addons.calendar')
175175
* @return {Promise} Promise resolved when the event data is retrieved.
176176
*/
177177
self.getEventFromLocalDb = function(id) {
178+
if (!$mmSite.isLoggedIn()) {
179+
// Not logged in, we can't get the site DB. User logged out or session expired while an operation was ongoing.
180+
return $q.reject();
181+
}
178182
return $mmSite.getDb().get(mmaCalendarEventsStore, id);
179183
};
180184

@@ -426,6 +430,11 @@ angular.module('mm.addons.calendar')
426430
* @return {Promise} Promise resolved when the notification is updated.
427431
*/
428432
self.updateNotificationTime = function(event, time) {
433+
if (!$mmSite.isLoggedIn()) {
434+
// Not logged in, we can't get the site DB. User logged out or session expired while an operation was ongoing.
435+
return $q.reject();
436+
}
437+
429438
var db = $mmSite.getDb();
430439

431440
event.notificationtime = time;

www/addons/mod_scorm/services/scorm_offline.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,11 @@ angular.module('mm.addons.mod_scorm')
685685
userId = userId || $mmSite.getUserId();
686686
scoData = scoData || {};
687687

688+
if (!$mmSite.isLoggedIn()) {
689+
// Not logged in, we can't get the site DB. User logged out or session expired while an operation was ongoing.
690+
return false;
691+
}
692+
688693
var lessonStatusInserted = false,
689694
scoUserData = scoData.userdata || {},
690695
db = $mmSite.getDb();

www/core/components/user/services/user.js

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,13 @@ angular.module('mm.core.user')
4646
* @return {Promise} Promise resolve when the user is deleted.
4747
*/
4848
self.deleteStoredUser = function(id) {
49-
var db = $mmSite.getDb();
49+
if (!$mmSite.isLoggedIn()) {
50+
// Not logged in, we can't get the site DB. User logged out or session expired while an operation was ongoing.
51+
return $q.reject();
52+
}
53+
5054
self.invalidateUserCache(id); // Invalidate WS calls.
51-
return db.remove(mmCoreUsersStore, parseInt(id));
55+
return $mmSite.getDb().remove(mmCoreUsersStore, parseInt(id));
5256
};
5357

5458
/**
@@ -155,8 +159,11 @@ angular.module('mm.core.user')
155159
* @return {Promise} Promise resolve when the user is retrieved.
156160
*/
157161
self.getUserFromLocal = function(id) {
158-
var db = $mmSite.getDb();
159-
return db.get(mmCoreUsersStore, parseInt(id));
162+
if (!$mmSite.isLoggedIn()) {
163+
// Not logged in, we can't get the site DB. User logged out or session expired while an operation was ongoing.
164+
return $q.reject();
165+
}
166+
return $mmSite.getDb().get(mmCoreUsersStore, parseInt(id));
160167
};
161168

162169
/**
@@ -239,8 +246,12 @@ angular.module('mm.core.user')
239246
* @return {Promise} Promise resolve when the user is stored.
240247
*/
241248
self.storeUser = function(id, fullname, avatar) {
242-
var db = $mmSite.getDb();
243-
return db.insert(mmCoreUsersStore, {
249+
if (!$mmSite.isLoggedIn()) {
250+
// Not logged in, we can't get the site DB. User logged out or session expired while an operation was ongoing.
251+
return $q.reject();
252+
}
253+
254+
return $mmSite.getDb().insert(mmCoreUsersStore, {
244255
id: parseInt(id),
245256
fullname: fullname,
246257
profileimageurl: avatar

www/core/lib/sitesmanager.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,10 @@ angular.module('mm.core')
471471
* @return {Promise}
472472
*/
473473
self.getSite = function(siteId) {
474-
if (currentSite && currentSite.getId() === siteId) {
474+
if (!siteId) {
475+
// Site ID not valid, reject.
476+
return $q.reject();
477+
} else if (currentSite && currentSite.getId() === siteId) {
475478
return $q.when(currentSite);
476479
} else if (typeof sites[siteId] != 'undefined') {
477480
return $q.when(sites[siteId]);

0 commit comments

Comments
 (0)