aboutsummaryrefslogtreecommitdiff
path: root/pkgs/webapps/etherpad-lite/modules/ep_mypads/fix_ldap.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/webapps/etherpad-lite/modules/ep_mypads/fix_ldap.patch')
-rw-r--r--pkgs/webapps/etherpad-lite/modules/ep_mypads/fix_ldap.patch88
1 files changed, 88 insertions, 0 deletions
diff --git a/pkgs/webapps/etherpad-lite/modules/ep_mypads/fix_ldap.patch b/pkgs/webapps/etherpad-lite/modules/ep_mypads/fix_ldap.patch
new file mode 100644
index 0000000..738a066
--- /dev/null
+++ b/pkgs/webapps/etherpad-lite/modules/ep_mypads/fix_ldap.patch
@@ -0,0 +1,88 @@
1diff --git a/auth.js b/auth.js
2index ce77ee4..de66b03 100644
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
13@@ -212,6 +213,7 @@ module.exports = (function () {
14 }
15 return callback(new Error(emsg), false);
16 }
17+ console.log("before user.get");
18 user.get(login, function(err, u) {
19 var props = ldapConf.properties;
20 var mail;
21@@ -229,27 +231,30 @@ module.exports = (function () {
22 return callback(new Error(emsg), false);
23 }
24 if (err) {
25+ console.log("in user.get err");
26 // We have to create the user in mypads database
27 ldapConf = conf.get('authLdapSettings');
28 user.set({
29- login: ldapuser[props.login],
30+ login: utils.getSingleton(ldapuser[props.login]),
31 password: NOT_INTERNAL_AUTH_PWD,
32- firstname: ldapuser[props.firstname],
33- lastname: ldapuser[props.lastname],
34+ firstname: utils.getSingleton(ldapuser[props.firstname]),
35+ lastname: utils.getSingleton(ldapuser[props.lastname]),
36 email: mail,
37 lang: ldapConf.defaultLang || 'en'
38 }, callback);
39 } else if (u.email !== mail ||
40- u.firstname !== ldapuser[props.firstname] ||
41- u.lastname !== ldapuser[props.lastname]) {
42+ u.firstname !== utils.getSingleton(ldapuser[props.firstname]) ||
43+ u.lastname !== utils.getSingleton(ldapuser[props.lastname])) {
44 // Update database and cache informations if needed
45 // (i.e. update from LDAP)
46+ console.log("in user.get update");
47 u.email = mail;
48- u.firstname = ldapuser[props.firstname];
49- u.lastname = ldapuser[props.lastname];
50+ u.firstname = utils.getSingleton(ldapuser[props.firstname]);
51+ u.lastname = utils.getSingleton(ldapuser[props.lastname]);
52 u.password = NOT_INTERNAL_AUTH_PWD;
53 user.set(u, callback);
54 } else {
55+ console.log("in user.get callback");
56 return callback(null, u);
57 }
58 });
59diff --git a/model/common.js b/model/common.js
60index b19829b..9421742 100644
61--- a/model/common.js
62+++ b/model/common.js
63@@ -94,6 +94,7 @@ module.exports = (function() {
64 var isFS = function (s) { return (ld.isString(s) && !ld.isEmpty(s)); };
65 ld.forEach(strFields, function (s) {
66 if (!isFS(params[s])) {
67+ console.log(params, s);
68 throw new TypeError('BACKEND.ERROR.TYPE.PARAM_STR');
69 }
70 if (s.length > 100) {
71diff --git a/utils.js b/utils.js
72index 32c2727..d381d06 100644
73--- a/utils.js
74+++ b/utils.js
75@@ -14,3 +14,13 @@ exports.callbackify2 = function (fun) {
76 return wrapPromise(fun(arg1, arg2), cb);
77 };
78 };
79+
80+exports.getSingleton = function (stringOrArray) {
81+ if (Array.isArray(stringOrArray)) {
82+ if (stringOrArray.length > 0) {
83+ return stringOrArray[0];
84+ }
85+ } else if (stringOrArray) {
86+ return stringOrArray;
87+ }
88+}