From fb79ccaa55e383e695a7084b64a4e905625dbf28 Mon Sep 17 00:00:00 2001 From: Harry Adel Date: Thu, 29 Jan 2026 21:01:39 +0200 Subject: [PATCH] Replace slugify with limax and fix sync operations --- packages/wekan-ldap/package.js | 6 +++++- packages/wekan-ldap/server/loginHandler.js | 2 +- packages/wekan-ldap/server/sync.js | 5 +++-- packages/wekan-ldap/server/testConnection.js | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/wekan-ldap/package.js b/packages/wekan-ldap/package.js index 5402afde6..97dcc7b74 100644 --- a/packages/wekan-ldap/package.js +++ b/packages/wekan-ldap/package.js @@ -12,7 +12,6 @@ Package.describe({ Package.onUse(function(api) { - api.use('yasaricli:slugify'); api.use('ecmascript'); api.use('underscore'); api.use('sha'); @@ -25,3 +24,8 @@ Package.onUse(function(api) { api.mainModule('server/index.js', 'server'); }); + +Npm.depends({ + 'ldapjs': '2.3.3', + 'limax': '4.1.0' +}); diff --git a/packages/wekan-ldap/server/loginHandler.js b/packages/wekan-ldap/server/loginHandler.js index 8864b0169..29ff386fa 100644 --- a/packages/wekan-ldap/server/loginHandler.js +++ b/packages/wekan-ldap/server/loginHandler.js @@ -203,7 +203,7 @@ Accounts.registerLoginHandler('ldap', async function(loginRequest) { await syncUserData(user, ldapUser); if (LDAP.settings_get('LDAP_LOGIN_FALLBACK') === true) { - Accounts.setPassword(user._id, loginRequest.ldapPass, {logout: false}); + await Accounts.setPasswordAsync(user._id, loginRequest.ldapPass, {logout: false}); } return { diff --git a/packages/wekan-ldap/server/sync.js b/packages/wekan-ldap/server/sync.js index d6da2a34e..7c8e48cf2 100644 --- a/packages/wekan-ldap/server/sync.js +++ b/packages/wekan-ldap/server/sync.js @@ -1,5 +1,6 @@ import _ from 'underscore'; import { SyncedCron } from 'meteor/quave:synced-cron'; +import limax from 'limax'; import LDAP from './ldap'; import { log_debug, log_info, log_warn, log_error } from './logger'; @@ -20,7 +21,7 @@ export function slug(text) { if (LDAP.settings_get('LDAP_UTF8_NAMES_SLUGIFY') !== true) { return text; } - text = slugify(text, '.'); + text = limax(text, { separator: '.' }); return text.replace(/[^0-9a-z-_.]/g, ''); } @@ -307,7 +308,7 @@ export async function addLdapUser(ldapUser, username, password) { try { // This creates the account with password service userObject.ldap = true; - userObject._id = Accounts.createUser(userObject); + userObject._id = await Accounts.createUserAsync(userObject); // Add the services.ldap identifiers await Meteor.users.updateAsync({ _id: userObject._id }, { diff --git a/packages/wekan-ldap/server/testConnection.js b/packages/wekan-ldap/server/testConnection.js index 254c79fac..50ad2638a 100644 --- a/packages/wekan-ldap/server/testConnection.js +++ b/packages/wekan-ldap/server/testConnection.js @@ -12,7 +12,7 @@ Meteor.methods({ // throw new Meteor.Error('error-not-authorized', 'Not authorized', { method: 'ldap_test_connection' }); //} - if (LDAP.settings_get(LDAP_ENABLE) !== true) { + if (LDAP.settings_get('LDAP_ENABLE') !== true) { throw new Meteor.Error('LDAP_disabled'); }