summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorJean-Christophe Haessig <jean-christophe.haessig@igbmc.fr>2019-07-19 09:30:35 +0200
committerJean-Christophe Haessig <jean-christophe.haessig@igbmc.fr>2019-07-19 09:30:35 +0200
commitbe44fb8aea68511468a8ee70d3d41a77bb248072 (patch)
tree6bc35a8d97b371585d69119009e2c2c7a350286d /packages
parentf06098f3dde638b191dd9efd450a41cf463a4794 (diff)
downloadwekan-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.js2
-rw-r--r--packages/wekan-ldap/server/sync.js36
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();}
});
});