diff --git a/website/client/src/components/admin-panel/user-support/cronAndAuth.vue b/website/client/src/components/admin-panel/user-support/cronAndAuth.vue index 1a28b044c7..260bc46177 100644 --- a/website/client/src/components/admin-panel/user-support/cronAndAuth.vue +++ b/website/client/src/components/admin-panel/user-support/cronAndAuth.vue @@ -36,6 +36,12 @@ ("auth.timestamps.loggedin" and "lastCron" dates are different). +
Time zone: {{ hero.preferences.timezoneOffset | formatTimeZone }} @@ -218,6 +224,10 @@ export default { await this.saveHero({ hero: this.hero, msg: 'API Token' }); this.tokenModified = true; }, + resetCron () { + this.hero.resetCron = true; + this.saveHero({ hero: this.hero, msg: 'Last Cron', clearData: true }); + }, }, }; diff --git a/website/server/controllers/api-v3/hall.js b/website/server/controllers/api-v3/hall.js index 2ee18a6044..a05b1e4f0f 100644 --- a/website/server/controllers/api-v3/hall.js +++ b/website/server/controllers/api-v3/hall.js @@ -331,6 +331,13 @@ api.updateHero = { hero.apiToken = common.uuid(); } + if (updateData.resetCron) { + // Set last cron to yesterday. Quick approach so we don't need moment() for one line + const yesterday = new Date(new Date().setDate(new Date().getDate() - 1)); + hero.lastCron = yesterday; + hero.auth.timestamps.loggedin = yesterday; // so admin panel doesn't gripe about mismatch + } + const savedHero = await hero.save(); const heroJSON = savedHero.toJSON(); heroJSON.secret = savedHero.getSecretData();