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();