]> git.immae.eu Git - perso/Immae/Config/Nix.git/blame - pkgs/webapps/etherpad-lite/modules/ep_mypads/fix_ldap.patch
Fix some etherpad-lite modules and packaging
[perso/Immae/Config/Nix.git] / pkgs / webapps / etherpad-lite / modules / ep_mypads / fix_ldap.patch
CommitLineData
f0d942ac 1diff --git a/auth.js b/auth.js
4b0a82cc 2index ce77ee4..235d8e6 100644
f0d942ac
IB
3--- a/auth.js
4+++ b/auth.js
5@@ -91,6 +91,7 @@ var cuid = require('cuid');
6 var common = require('./model/common.js');
7 var user = require('./model/user.js');
8 var conf = require('./configuration.js');
9+var utils = require('./utils.js');
10
11 var NOT_INTERNAL_AUTH_PWD = 'soooooo_useless';
12
4b0a82cc 13@@ -232,21 +233,21 @@ module.exports = (function () {
f0d942ac
IB
14 // We have to create the user in mypads database
15 ldapConf = conf.get('authLdapSettings');
16 user.set({
17- login: ldapuser[props.login],
18+ login: utils.getSingleton(ldapuser[props.login]),
19 password: NOT_INTERNAL_AUTH_PWD,
20- firstname: ldapuser[props.firstname],
21- lastname: ldapuser[props.lastname],
22+ firstname: utils.getSingleton(ldapuser[props.firstname]),
23+ lastname: utils.getSingleton(ldapuser[props.lastname]),
24 email: mail,
25 lang: ldapConf.defaultLang || 'en'
26 }, callback);
27 } else if (u.email !== mail ||
28- u.firstname !== ldapuser[props.firstname] ||
29- u.lastname !== ldapuser[props.lastname]) {
30+ u.firstname !== utils.getSingleton(ldapuser[props.firstname]) ||
31+ u.lastname !== utils.getSingleton(ldapuser[props.lastname])) {
32 // Update database and cache informations if needed
33 // (i.e. update from LDAP)
f0d942ac
IB
34 u.email = mail;
35- u.firstname = ldapuser[props.firstname];
36- u.lastname = ldapuser[props.lastname];
37+ u.firstname = utils.getSingleton(ldapuser[props.firstname]);
38+ u.lastname = utils.getSingleton(ldapuser[props.lastname]);
39 u.password = NOT_INTERNAL_AUTH_PWD;
40 user.set(u, callback);
41 } else {
f0d942ac
IB
42diff --git a/utils.js b/utils.js
43index 32c2727..d381d06 100644
44--- a/utils.js
45+++ b/utils.js
46@@ -14,3 +14,13 @@ exports.callbackify2 = function (fun) {
47 return wrapPromise(fun(arg1, arg2), cb);
48 };
49 };
50+
51+exports.getSingleton = function (stringOrArray) {
52+ if (Array.isArray(stringOrArray)) {
53+ if (stringOrArray.length > 0) {
54+ return stringOrArray[0];
55+ }
56+ } else if (stringOrArray) {
57+ return stringOrArray;
58+ }
59+}