Skip to content

Commit 2811cc6

Browse files
committed
fix: crash on ACP settings save
1 parent 8343ae1 commit 2811cc6

1 file changed

Lines changed: 23 additions & 32 deletions

File tree

library.js

Lines changed: 23 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ payloadKeys.forEach(function (key) {
5757
plugin.settings['payload:' + key] = key;
5858
});
5959

60-
plugin.init = function (params, callback) {
60+
plugin.init = async (params) => {
6161
var router = params.router;
6262
var hostMiddleware = params.middleware;
6363

@@ -71,7 +71,7 @@ plugin.init = function (params, callback) {
7171
router.get('/debug/session', plugin.generate);
7272
}
7373

74-
plugin.reloadSettings(callback);
74+
await plugin.reloadSettings();
7575
};
7676

7777
plugin.appendConfig = function (config, callback) {
@@ -599,42 +599,33 @@ plugin.addAdminNavigation = function (header, callback) {
599599
callback(null, header);
600600
};
601601

602-
plugin.reloadSettings = function (callback) {
603-
// If callback is not a function then it is the action hook from core
604-
if (typeof callback !== 'function' && callback.plugin !== 'session-sharing') {
602+
plugin.reloadSettings = async (data) => {
603+
// If data argument is truthy, then it is the action hook from core
604+
if (data && data.plugin !== 'session-sharing') {
605605
return;
606606
}
607607

608-
meta.settings.get('session-sharing', function (err, settings) {
609-
if (err) {
610-
return callback(err);
611-
}
612-
613-
if (!settings.hasOwnProperty('secret') || !settings.secret.length) {
614-
winston.error('[session-sharing] JWT Secret not found, session sharing disabled.');
615-
return callback();
616-
}
617-
618-
// If "payload:parent" is found, but payloadParent is not, update the latter and delete the former
619-
if (!settings.payloadParent && settings['payload:parent']) {
620-
winston.verbose('[session-sharing] Migrating payload:parent to payloadParent');
621-
settings.payloadParent = settings['payload:parent'];
622-
db.setObjectField('settings:session-sharing', 'payloadParent', settings.payloadParent);
623-
db.deleteObjectField('settings:session-sharing', 'payload:parent');
624-
}
608+
const settings = await meta.settings.get('session-sharing');
609+
if (!settings.hasOwnProperty('secret') || !settings.secret.length) {
610+
winston.error('[session-sharing] JWT Secret not found, session sharing disabled.');
611+
return;
612+
}
625613

626-
if (!settings['payload:username'] && !settings['payload:firstName'] && !settings['payload:lastName'] && !settings['payload:fullname']) {
627-
settings['payload:username'] = 'username';
628-
}
614+
// If "payload:parent" is found, but payloadParent is not, update the latter and delete the former
615+
if (!settings.payloadParent && settings['payload:parent']) {
616+
winston.verbose('[session-sharing] Migrating payload:parent to payloadParent');
617+
settings.payloadParent = settings['payload:parent'];
618+
await db.setObjectField('settings:session-sharing', 'payloadParent', settings.payloadParent);
619+
await db.deleteObjectField('settings:session-sharing', 'payload:parent');
620+
}
629621

630-
winston.info('[session-sharing] Settings OK');
631-
plugin.settings = _.defaults(_.pickBy(settings, Boolean), plugin.settings);
632-
plugin.ready = true;
622+
if (!settings['payload:username'] && !settings['payload:firstName'] && !settings['payload:lastName'] && !settings['payload:fullname']) {
623+
settings['payload:username'] = 'username';
624+
}
633625

634-
if (typeof callback === 'function') {
635-
callback();
636-
}
637-
});
626+
winston.info('[session-sharing] Settings OK');
627+
plugin.settings = _.defaults(_.pickBy(settings, Boolean), plugin.settings);
628+
plugin.ready = true;
638629
};
639630

640631
plugin.appendTemplate = (data, callback) => {

0 commit comments

Comments
 (0)