diff options
author | Jean-Christophe Haessig <jean-christophe.haessig@igbmc.fr> | 2019-07-19 09:30:35 +0200 |
---|---|---|
committer | Jean-Christophe Haessig <jean-christophe.haessig@igbmc.fr> | 2019-07-19 09:30:35 +0200 |
commit | be44fb8aea68511468a8ee70d3d41a77bb248072 (patch) | |
tree | 6bc35a8d97b371585d69119009e2c2c7a350286d /packages | |
parent | f06098f3dde638b191dd9efd450a41cf463a4794 (diff) | |
download | wekan-be44fb8aea68511468a8ee70d3d41a77bb248072.tar.gz wekan-be44fb8aea68511468a8ee70d3d41a77bb248072.tar.bz2 wekan-be44fb8aea68511468a8ee70d3d41a77bb248072.zip |
Makes LDAP background sync work. If the sync interval is unspecified, falls back to a hourly default.
Diffstat (limited to 'packages')
-rw-r--r-- | packages/wekan-ldap/package.js | 2 | ||||
-rw-r--r-- | packages/wekan-ldap/server/sync.js | 36 |
2 files changed, 22 insertions, 16 deletions
diff --git a/packages/wekan-ldap/package.js b/packages/wekan-ldap/package.js index feda02e9..b6560854 100644 --- a/packages/wekan-ldap/package.js +++ b/packages/wekan-ldap/package.js @@ -21,7 +21,7 @@ Package.onUse(function(api) { api.use('accounts-base', 'server'); api.use('accounts-password', 'server'); - + api.use('percolate:synced-cron', 'server'); api.addFiles('client/loginHelper.js', 'client'); api.mainModule('server/index.js', 'server'); diff --git a/packages/wekan-ldap/server/sync.js b/packages/wekan-ldap/server/sync.js index 141ef349..dd3855d3 100644 --- a/packages/wekan-ldap/server/sync.js +++ b/packages/wekan-ldap/server/sync.js @@ -1,4 +1,5 @@ import _ from 'underscore'; +import SyncedCron from 'meteor/percolate:synced-cron'; import LDAP from './ldap'; import { log_debug, log_info, log_warn, log_error } from './logger'; @@ -418,30 +419,35 @@ function sync() { const jobName = 'LDAP_Sync'; const addCronJob = _.debounce(Meteor.bindEnvironment(function addCronJobDebounced() { + let sc=SyncedCron.SyncedCron; //Why ?? something must be wrong in the import if (LDAP.settings_get('LDAP_BACKGROUND_SYNC') !== true) { log_info('Disabling LDAP Background Sync'); - if (SyncedCron.nextScheduledAtDate(jobName)) { - SyncedCron.remove(jobName); + if (sc.nextScheduledAtDate(jobName)) { + sc.remove(jobName); } return; } - if (LDAP.settings_get('LDAP_BACKGROUND_SYNC_INTERVAL')) { - log_info('Enabling LDAP Background Sync'); - SyncedCron.add({ - name: jobName, - schedule: (parser) => parser.text(LDAP.settings_get('LDAP_BACKGROUND_SYNC_INTERVAL')), - job() { - sync(); - }, - }); - SyncedCron.start(); - } + log_info('Enabling LDAP Background Sync'); + sc.add({ + name: jobName, + schedule: function(parser) { + if (LDAP.settings_get('LDAP_BACKGROUND_SYNC_INTERVAL')) { + return parser.text(LDAP.settings_get('LDAP_BACKGROUND_SYNC_INTERVAL')); + } + else { + return parser.recur().on(0).minute(); + }}, + job: function() { + sync(); + }, + }); + sc.start(); + }), 500); Meteor.startup(() => { Meteor.defer(() => { - LDAP.settings_get('LDAP_BACKGROUND_SYNC', addCronJob); - LDAP.settings_get('LDAP_BACKGROUND_SYNC_INTERVAL', addCronJob); + if(LDAP.settings_get('LDAP_BACKGROUND_SYNC')){addCronJob();} }); }); |