tykeal / ep_ldapauth Goto Github PK
View Code? Open in Web Editor NEW(Up for adoption) LDAP authentication plugin for Etherpad-lite
License: GNU General Public License v2.0
(Up for adoption) LDAP authentication plugin for Etherpad-lite
License: GNU General Public License v2.0
Hi!
I Installed the last Etherpad-lite and ep_ldapauth version on a Debian server and after login through LDAP with no problem, I cannot access to the pads. Every pad shows the next error:
An error occured
The error was reported with the following id: 'xhpbmxFHRbJIMzD9N4JH'
Please press and hold Ctrl and press F5 to reload this page, if the problem persists please send this error message to your webmaster:
'ErrorId: xhpbmxFHRbJIMzD9N4JH
URL: http://everest.uab.cat:55001/p/prueba
UserAgent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 Iceweasel/31.4.0
And here's the error displayed on Debian console:
[2015-05-11 14:04:13.880] [ERROR] console - TypeError: Cannot read property 'handshaken' of undefined
at Object.exports.handleMessage as hook_fn
at normalizedhook (/var/www/etherpad-lite/src/static/js/pluginfw/hooks.js:15:27)
at hookCallWrapper (/var/www/etherpad-lite/src/static/js/pluginfw/hooks.js:21:14)
at /var/www/etherpad-lite/src/static/js/pluginfw/hooks.js:88:7
at /var/www/etherpad-lite/src/node_modules/async/lib/async.js:249:17
at /var/www/etherpad-lite/src/node_modules/async/lib/async.js:125:13
at Array.forEach (native)
at _each (/var/www/etherpad-lite/src/node_modules/async/lib/async.js:46:24)
at async.each (/var/www/etherpad-lite/src/node_modules/async/lib/async.js:124:9)
at _asyncMap (/var/www/etherpad-lite/src/node_modules/async/lib/async.js:248:13)
Any help would be appreciated.
Thank you!
I'm a newbie to etherpad. I try to get the LDAP integration running. Authenication is already working, but IMHO authentication seems to have an issue:
false
in settings.json
, the hook isn't called at all (as seen if loglevel is set to DEBUG).true
, any non-admin get forbidden at the web client.Is it possible that the value returned at
Line 174 in 42cd54c
true
?
Because if I change it in this way, all _seems- to work so far. But I have no experience with Etherpad, yet and this change might be complete wrong.
Hello
Here is a crash I get on a standard installation with [email protected]
[2014-12-01 22:49:12.496] [ERROR] console - TypeError: Cannot read property 'handshaken' of undefined
at Object.exports.handleMessage [as hook_fn] (/var/www/etherpad-lite/node_modules/ep_ldapauth/ep_ldapauth.js:176:43)
at normalizedhook (/var/www/etherpad-lite/src/static/js/pluginfw/hooks.js:15:27)
at hookCallWrapper (/var/www/etherpad-lite/src/static/js/pluginfw/hooks.js:21:14)
at /var/www/etherpad-lite/src/static/js/pluginfw/hooks.js:88:7
at /var/www/etherpad-lite/src/node_modules/async/lib/async.js:249:17
at /var/www/etherpad-lite/src/node_modules/async/lib/async.js:125:13
at Array.forEach (native)
at _each (/var/www/etherpad-lite/src/node_modules/async/lib/async.js:46:24)
at async.each (/var/www/etherpad-lite/src/node_modules/async/lib/async.js:124:9)
at _asyncMap (/var/www/etherpad-lite/src/node_modules/async/lib/async.js:248:13)
Any idea to solve it?
If one tries to change the author color in Etherpad, it will not be saved. Disabling the plugin lets the user save the color properly.
Thank you so much for this solution, but I don't bring it up and running.
What I would need is just a little better explanation of what which parameter means.
In the first place I'd like to get authentication running in a more basic sense.
Secondly I also would like to create a group within my ldap structure that selects the users that may actually use etherpad (ACL).
Thank you
After upgrading etherpad instance from version 1.8.4 to 1.8.7. Ldap users were not allowed to access admin pages despite being successfully authenticated by ep_ldapauth. And, by reverting to the 1.8.4 (or 1.8.5) version with the same settings, it works again. I think it's related to security fixes applied to Etherpad. Can you help me with this issue please?
`
app_1 | [2021-10-08 10:47:52.545] [DEBUG] console - ep_ldapauth.authenticate
app_1 | [2021-10-08 10:47:52.661] [DEBUG] console - ep_ldapauth.authenticate: deferring setting of username [] to CLIENT_READY for express_sid = MrwZLeyqA***********
app_1 | [2021-10-08 10:47:52.662] [DEBUG] console - ep_ldapauth.authenticate: successful authentication
app_1 | [2021-10-08 10:47:52.662] [INFO] http - Successful authentication from IP **** for user *********
app_1 | [2021-10-08 10:47:52.664] [DEBUG] http - 403, GET /admin
`
Hi,
I'm trying to use your module with the latest develop branch of etherpad. Once the update is done I have the following message :
Failed to load '/opt/etherpad/etherpad-lite/node_modules/ep_ldapauth/ep_ldapauth' for 'ep_ldapauth/ep_ldapauth/hooks/authenticate': Error: Module did not self-register.
[2016-12-29 13:30:20.283] [ERROR] console - Failed to load '/opt/etherpad/etherpad-lite/node_modules/ep_ldapauth/ep_ldapauth' for 'ep_ldapauth/ep_ldapauth/hooks/authorize': Error: Module did not self-register.
[2016-12-29 13:30:20.284] [ERROR] console - Failed to load '/opt/etherpad/etherpad-lite/node_modules/ep_ldapauth/ep_ldapauth' for 'ep_ldapauth/ep_ldapauth/hooks/handleMessage': Error: Module did not self-register.
Any help would be appreciated
I'm using Etherpad Lite 1.8.4 with ep_ldapauth
0.3.0. Authentication via LDAP works but the username is not set after successful authentication.
The user attributes are retrieved from LDAP and stored in a session:
ueberDB - SET - sessionstorage:2YKbRLzw-eXNxTOnmnY61KIE9EKs4dNM - {"cookie":{"path":"/","_expires":null,"originalMaxAge":null,"httpOnly":true,"secure":false},"user":{"
username":"me","displayName":"Me Me Me","userDN":"uid=me,ou=people,dc=example,dc=com"}} - to buffer
Relevant parts from settings.json
requireAuthentication": true,
"users": {
"ldapauth": {
"password": "dummy_password",
"url": "ldaps://ldap.example.com",
"accountBase": "ou=people,dc=example,dc=com",
"accountPattern": "(&(objectClass=*)(uid={{username}}))",
"displayNameAttribute": "cn",
"searchDN": "cn=mybinduser,dc=example,dc=com",
"searchPWD": "mybindpassword",
"groupSearchBase": "ou=group,dc=example,dc=com",
"groupAttribute": "member",
"groupAttributeIsDN": true,
"searchScope": "sub",
"groupSearch": "(&(cn=admin)(objectClass=groupOfNames))",
"anonymousReadonly": false
}
},
Do I miss something obvious here?
This may have more to do with Etherpad than your plugin but is there any way to logout? I'd like to be able to switch between admin and my "normal" LDAP account.
If logout is not possible, is it possible to set specific LDAP users to be admin?
When loading a pad, etherpad crashes with this:
[2015-01-08 14:24:26.144] [ERROR] console - ReferenceError: client_id is not defined at Object.exports.handleMessage [as hook_fn] (/usr/share/etherpad/node_modules/ep_ldapauth/ep_ldapauth.js:178:142) at normalizedhook (/usr/share/etherpad/src/static/js/pluginfw/hooks.js:15:27) at hookCallWrapper (/usr/share/etherpad/src/static/js/pluginfw/hooks.js:21:14) at /usr/share/etherpad/src/static/js/pluginfw/hooks.js:88:7 at /usr/share/etherpad/src/node_modules/async/lib/async.js:249:17 at /usr/share/etherpad/src/node_modules/async/lib/async.js:125:13 at Array.forEach (native) at _each (/usr/share/etherpad/src/node_modules/async/lib/async.js:46:24) at async.each (/usr/share/etherpad/src/node_modules/async/lib/async.js:124:9) at _asyncMap (/usr/share/etherpad/src/node_modules/async/lib/async.js:248:13)
Hi there,
I've configured according to the documentation (I have all my internal services working on LDAP so the ldap server is not a problem for sure), and I have the following error in logs:
[2013-09-01 12:26:12.252] [DEBUG] console - ep_ldapauth.authorize
[2013-09-01 12:26:12.252] [DEBUG] console - ep_ldapauth.authorize: no username in user object
[2013-09-01 12:26:12.252] [DEBUG] console - ep_ldapauth.authenticate
[2013-09-01 12:26:12.517] [ERROR] console - ep_ldapauth.authenticate: LDAP auth error: ConnectionError: [2013-09-01 12:26:12.252] [DEBUG] console - ep_ldapauth.authorize
[2013-09-01 12:26:12.252] [DEBUG] console - ep_ldapauth.authorize: no username in user object
[2013-09-01 12:26:12.252] [DEBUG] console - ep_ldapauth.authenticate
[2013-09-01 12:26:12.517] [ERROR] console - ep_ldapauth.authenticate: LDAP auth error: ConnectionError: ldaps://ldap.******.net:1636 closed closed
Any ideas why?
Is my configuration ok, when I have a non standard port (ldaps://ldap.******.net:1636)?
Hi,
I upgraded my etherpad-lite instance from 1.7.5 to 1.8.0 and after that I could not access any existing pads nor create new ones.
FYI I am using version 0.3.0 of the ep_ldapauth module along with NodeJS v8.17.0.
Reverting to etherpad-lite 1.7.5 using exactly the same settings.json cleared the issue.
Here is the error I was getting with 1.8.0 when running the DEV
environment with logging set to DEBUG
:
$ bin/run.sh
(...)
[2020-01-15 14:23:00.181] [DEBUG] message - from ypRhX1wzeL6Sb54DAAAA: {"component":"pad","type":"CLIENT_READY","padId":"nmc","sessionID":"null","password":null,"token":*****************","protocolVersion":2}
[2020-01-15 14:23:00.182] [DEBUG] console - ep_ldapauth.handleMessage
[2020-01-15 14:23:00.185] [ERROR] console - (node:8960) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'anonymousReadonly' of undefined
at Object.exports.handleMessage [as hook_fn] (/srv/etherpad-lite/node_modules/ep_ldapauth/ep_ldapauth.js:189:36)
at normalizedhook (/srv/etherpad-lite/src/static/js/pluginfw/hooks.js:15:27)
at hookCallWrapper (/srv/etherpad-lite/src/static/js/pluginfw/hooks.js:21:14)
at /srv/etherpad-lite/src/static/js/pluginfw/hooks.js:88:7
at /srv/etherpad-lite/src/node_modules/async/lib/async.js:249:17
at /srv/etherpad-lite/src/node_modules/async/lib/async.js:125:13
at Array.forEach (<anonymous>)
at _each (/srv/etherpad-lite/src/node_modules/async/lib/async.js:46:24)
at async.each (/srv/etherpad-lite/src/node_modules/async/lib/async.js:124:9)
at _asyncMap (/srv/etherpad-lite/src/node_modules/async/lib/async.js:248:13)
[2020-01-15 14:23:00.185] [ERROR] console - (node:8960) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)
[2020-01-15 14:23:00.185] [ERROR] console - (node:8960) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Thanks!
can you explain a bit more as to what the searchDN field is ?
i get the below error when I supply my AD userid/password
ep_ldapauth.authenticate: LDAP auth error: ldap bind with uid={{myUID_goes_here}} to {{myldapurl_goes_here}} failed: InvalidCredentialsError: 80090308: LdapErr: DSID-0C0903A8, comment: AcceptSecurityContext error, data 52e, v1db1
Hi,
I noticed a worrisome behaviour when using an empty password to log in with your plugin.
The ldapjs authenticate() function does not seem to fail when providing an empty password. This is apparently known and unfortunately an AD legal behaviour.
Refer to ldapjs/node-ldapjs#191 for more information.
If you need more details about this particular behaviour on my setup, let me know.
Hi
As shown below, if there's no ldap configuration in settings.json, Etherpad die. It should be just ignored.
root@etherpad-01-stg:/opt/etherpad-lite# rm /var/log/etherpad-lite/etherpad-lite.log; service etherpad restart; sleep 5; tail -f /var/log/etherpad-lite/etherpad-lite.log
Ensure that all dependencies are up to date... If this is the first time you have run Etherpad please be patient.
audited 8184 packages in 11.35s
found 1 low severity vulnerability
run `npm audit fix` to fix them, or `npm audit` for details
Clearing minified cache...
Started Etherpad...
[2018-12-07 08:14:01.129] [DEBUG] console - Running on Node v11.2.0 (minimum required Node version: 6.9.0)
[2018-12-07 08:14:01.184] [INFO] console - All relative paths will be interpreted relative to the identified Etherpad base dir: /opt/etherpad-lite
[2018-12-07 08:14:01.186] [DEBUG] AbsolutePaths - Relative path "settings.json" can be rewritten to "/opt/etherpad-lite/settings.json"
[2018-12-07 08:14:01.187] [DEBUG] AbsolutePaths - Relative path "credentials.json" can be rewritten to "/opt/etherpad-lite/credentials.json"
[2018-12-07 08:14:01.187] [INFO] console - Settings loaded from: /opt/etherpad-lite/settings.json
[2018-12-07 08:14:01.191] [INFO] console - No credentials file found in /opt/etherpad-lite/credentials.json. Ignoring.
[2018-12-07 08:14:01.374] [ERROR] console - (node:6597) [DEP0096] DeprecationWarning: timers.unenroll() is deprecated. Please use clearTimeout instead.
[2018-12-07 08:14:31.142] [ERROR] console - TypeError: Cannot read property 'anonymousReadonly' of undefined
at Object.exports.authorize [as hook_fn] (/opt/etherpad-lite/node_modules/ep_ldapauth/ep_ldapauth.js:94:30)
at normalizedhook (/opt/etherpad-lite/src/static/js/pluginfw/hooks.js:15:27)
at hookCallWrapper (/opt/etherpad-lite/src/static/js/pluginfw/hooks.js:21:14)
at /opt/etherpad-lite/src/static/js/pluginfw/hooks.js:111:7
at next (/opt/etherpad-lite/src/static/js/pluginfw/hooks.js:46:5)
at Object.exports.mapFirst (/opt/etherpad-lite/src/static/js/pluginfw/hooks.js:52:3)
at Object.exports.aCallFirst (/opt/etherpad-lite/src/static/js/pluginfw/hooks.js:108:11)
at authorize (/opt/etherpad-lite/src/node/hooks/express/webaccess.js:30:11)
at exports.basicAuth (/opt/etherpad-lite/src/node/hooks/express/webaccess.js:84:3)
at Layer.handle [as handle_request] (/opt/etherpad-lite/src/node_modules/express/lib/router/layer.js:95:5)
^C
Best regards,
Hi,
Add "is_admin" option in ldapauth so we can use ldap roles / group to design who is an administator or an simple user.
Thanks.
i get the below error,
node-gyp rebuild
make: Entering directory /home/vardha/etherpad-lite/node_modules/ep_ldapauth/node_modules/ldapjs/node_modules/dtrace-provider/build' TOUCH Release/obj.target/DTraceProviderStub.stamp make: Leaving directory
/home/vardha/etherpad-lite/node_modules/ep_ldapauth/node_modules/ldapjs/node_modules/dtrace-provider/build'
npm ERR! Linux 3.19.0-25-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "ep_ldapauth"
npm ERR! node v4.4.7
npm ERR! npm v2.15.8
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the buffertools package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs buffertools
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR! npm owner ls buffertools
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/vardha/etherpad-lite/npm-debug.log
any idea as to why?
With etherpad version 1.8.12 it is working. Updating to 1.8.13 yields to
[2021-04-22 13:28:24.933] [INFO] plugins - npm --version: 6.14.11
[2021-04-22 13:28:28.029] [ERROR] runCmd|npm - npm ERR! extraneous: [email protected] /home/c7031016/etherpad-lite/node_modules/ep_etherpad-lite
[2021-04-22 13:28:28.047] [DEBUG] runCmd - Error: Command exited with code 1: npm ls --long --json --depth=0 --no-production
at exports (/home/c7031016/etherpad-lite/src/node/utils/run_cmd.js:119:25)
at Object.exports.getPackages (/home/c7031016/etherpad-lite/src/static/js/pluginfw/plugins.js:93:48)
at Object.exports.update (/home/c7031016/etherpad-lite/src/static/js/pluginfw/plugins.js:67:34)
at Object.exports.start (/home/c7031016/etherpad-lite/src/node/server.js:140:19)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
[2021-04-22 13:28:28.047] [ERROR] server - Error occurred while starting Etherpad
[2021-04-22 13:28:28.048] [ERROR] server - Error: Command exited with code 1: npm ls --long --json --depth=0 --no-production
at exports (/home/c7031016/etherpad-lite/src/node/utils/run_cmd.js:119:25)
at Object.exports.getPackages (/home/c7031016/etherpad-lite/src/static/js/pluginfw/plugins.js:93:48)
at Object.exports.update (/home/c7031016/etherpad-lite/src/static/js/pluginfw/plugins.js:67:34)
at Object.exports.start (/home/c7031016/etherpad-lite/src/node/server.js:140:19)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
[2021-04-22 13:28:28.049] [INFO] server - Exiting...
[2021-04-22 13:28:28.049] [INFO] server - Waiting for Node.js to exit...
Without the plugin etherpad is running.
Hi
I'm trying to set up the LDAP auth against our server with a self-signed certificate. Which I guess explain this
[2018-12-07 08:16:55.889] [ERROR] console - Error: unable to verify the first certificate
at TLSSocket.onConnectSecure (_tls_wrap.js:1122:34)
at TLSSocket.emit (events.js:182:13)
at TLSSocket.EventEmitter.emit (domain.js:441:20)
at TLSSocket._finishInit (_tls_wrap.js:625:8)
RESTART!
I tried to add my certificate to the local CA ( CRT in /usr/local/share/ca-certificates/ldap01.crt + update-ca-certificates), didn't worked. I'll work on having a real certificate, but I wish I could allow self signed.
Best regards,
It seems the situation as described in #11 has changed - etherpad-lite seems to store login information in a cookie named "express-sid".
To logout, this cookie must be deleted.
Can this be implemented in your plugin?
Thanks!
Hi,
i installed this module in my etherpad instance and configured the ldap server in settings.json if i start the etherpad server i get prompted for username and passwort. If i enter everything correct i can only see
[2019-11-28 16:17:22.059] [INFO] ueberDB - Flushed 1 values
and i get stuck in a authentication loop after that.
If i enter the wrong password the ldap server shows me a error (thats what i expect) and node.js echos me:
[2019-11-28 16:18:50.205] [ERROR] console - ep_ldapauth.authenticate: LDAP auth error: password verify failed. could not bind dn uid=username,ou=people,dc=tld,dc=com: InvalidCredentialsError: Invalid Credentials
Could you please help me?
Hi,
i got a question concerning your plugins group filter. I got a user called "test" who is not member of any group.
my config looks like this:
"groupSearchBase": "ou=Groups,dc=domain,dc=tld",
"groupAttribute": "member",
"groupAttributeIsDN": true,
"searchScope": "sub",
"groupSerach": "(&(cn=EtherpadEditor)(objectClass=groupOfNames))"
still "test" can log in... what might i be doing wrong?
How can I configure au TLS (only) connexion?
Thanks in advance
I have hard time to get authenticate by my ldap.
my accountPattern looks like this
"(&(objectClass=*)(memberOf=cn=etherpad-groups,cn=accounts,dc=lab)(uid={{username}}))"
but i found this in my ldap log
conn=837 op=1 SRCH base="cn=users,cn=accounts,dc=lab" scope=2 filter="(&(=*\29)(=cn=etherpad-groups,cn=accounts,dc=lab\29)(=karel\29))" attrs\ALL
thx for any kind of help with this
TypeError: Cannot read property 'anonymousReadonly' of undefined
"users": {
"ldapauth": {
"url": "ldap://domain.local:389",
"accountBase": "ou=People,dc=domain,dc=local",
"accountPattern": "(&(objectClass=*)(uid={{username}}))",
"displayNameAttribute": "cn",
"searchDN": "CN=etherpad-ldap,OU=ServiceAccounts,OU=People,DC=domain,DC=local",
"searchPWD": "caaccacacaca",
"groupSearchBase": "ou=People,dc=domain,dc=local",
"groupAttribute": "member",
"groupAttributeIsDN": true,
"searchScope": "sub",
"groupSearch": "(&(cn=admin)(objectClass=Important People))",
"anonymousReadonly": false
}
},
the json is proper for anonymousReadonly as it is the last item in the dictionary and therefore doesnt need a comma. Doesnt make sense why its throwing the error. Any ideas?
Thanks
Found this little nit while copy-pasting (and adapting to local situation) that etherpad-lite wouldn't start since it was invalid json.
diff --git a/README.md b/README.md
index 66a48d3..f22477a 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ Add to settings.json:
"groupAttribute": "member",
"groupAttributeIsDN": true,
"searchScope": "sub",
- "groupSearch": "(&(cn=admin)(objectClass=groupOfNames))"
+ "groupSearch": "(&(cn=admin)(objectClass=groupOfNames))",
"anonymousReadonly": false
}
},
Hello, I have problems to authenticate my ldap_users
I think my config is good, i have enabled debug loglevel, but in my console I doesn't read anything about ldaps connection
Where I can enable it ?
Very easy to install !
Thank's a lot!
Hello I ve tried to install it on an etherpad install and after running npm install ep_ldapauth I got this error:
Any idea what could be? I am not very used to npm.
Thanks
npm ERR! Linux 3.10.0-229.1.2.el7.x86_64
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "ep_ldapauth"
npm ERR! node v0.12.4
npm ERR! npm v2.10.1
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the buffertools package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls buffertools
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /root/etherpad-lite/npm-debug.log
I wonder about the necessity to provide "searchDN" and "searchPWD" for non-AD LDAP. Normally, I just give the URL and base of my ldap, and the software uses the name and password the current user enters to connect to LDAP. If this succeeds, the user is positively identified. This way, I don't have to put non-encrypted secret data in a plain text configuation file.
Is this possible with your code?
How do I identify admins?
What is the purpose of the "groupSearch" entry? And "anonymousReadonly"?
I'd love to see any documentation about this code :-)
Hi,
we need to have public read-only pads, i have changed the plugin to enable this. see piratenfraktion-nrw@f1186ce for that. basically it looks for the read-only link and permits the request for everyone if it is the read-only link. i hope i have not done any shit with my change :)
my question is, is this wanted for this plugin in general? if so, i would send you a pull request..
When downloading etherpad-lite 1.5.5 (Win), then installing the included ep_lpapauth 0.2.0 via /admin/plugins, the install process ruins the etherpad installation.
A popup with an OK button and the following text appears during installation:
"An error occured while installing ep_ldapauth
[email protected] install: node-gyp rebuild
Exit status 1"
After that, etherpad won't work properly anymore.
Best regards
ternite
Hello guys,
Is there a way to remember (or where should I start to achieve) the last user color between sessions? For example if Paul has green color, then Paul always have the green color until he decide to change it.
Thank you and congratulations for all the good job done with this plugin!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.