ep_mypads issueshttps://framagit.org/framasoft/Etherpad/ep_mypads/-/issues2024-02-20T16:27:21Zhttps://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/269mypads isn't working with with current (1.9.3) release of etherpad2024-02-20T16:27:21ZRobert Schnüllmypads isn't working with with current (1.9.3) release of etherpad## Description of the bug
In the current release of etherpad it is not possible to login into a new instance of mypads any more as long as a non dirty.db is used.
I tracked down the bug to a refactoring process of ueberDB2 from js -> ts...## Description of the bug
In the current release of etherpad it is not possible to login into a new instance of mypads any more as long as a non dirty.db is used.
I tracked down the bug to a refactoring process of ueberDB2 from js -> ts.
### Trace of the bug:
1. [mypads frontend] login not possible: console -> `Uncaught TypeError: can't access property "length", a.data.rootUrl() is undefined`
2. [mypads frontend] admin.js: fetches '/mypads/api/configuration' -> response: `{"value":{},"auth":true}`. Usually the value object should be populated and include informations like rootUrl. Instead it is empty
3. [mypads backend] api.js: GET route for /api/configuration gets the return from configuration.js
4. [mypads backend] configuration.js: initially takes default values writes them into the database via 'storage.js' `setKeys` functions and try to get those values from the DB via `getKeys` and returns them.
5. [mypads backend] storage.js: tries to set and get keys from DB via 'ep_etherpad-lite/node/db/DB'.
6. [etherpad] ep_etherpad-lite/node/db/DB: exposes functions of ueberdb2 to initialize as well as `get` and `set` from the DB.
7. [ueberDB2] index.ts: Condition which checks of the debrecated version of a call is used is triggered through this pipline starting from mypads in which the `set` function returns `cbDb.get.call` this should be `cbDb.set.call` instead. So nothing is ever written to the DB and therefore it is impossible to get anything from the DB.
So in the end, this small bug breaks mypads up the chain.
How this bug ended up in ueberDB2 is described in the following ueberDB2 PR: https://github.com/ether/ueberDB/pull/464
## What should be the normal behavior?
A login process should work without any problems, as the storage.js is able to write data to the DB through ueberDB2 and get this data afterward.
## What is the current behavior?
## Do you have a hint about the bug resolution?
A PR is already in place in the repository of ueberDB2 : https://github.com/ether/ueberDB/pull/464 . If this PR got merged and this following release of ueberDB2 will be included in the upcoming etherpad release, this bug should be resolved on its own without any changed in mypads. if this is not the case it is needed to rewrite the storage.js file in mypads that it uses the non deprecated function of ueberDB2 (which includes this bug). Anyhow, since the PR towards ueberDB2 is a bugfix and not a feature request it is likely that it will get solved without any chances needed for now in mypads.
## What is your version of Etherpad?
1.9.3 (in 1.9.1 it is still working)
## What is your version of MyPads?
1.7.24
## What is your authentication method?
LDAPhttps://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/267When connected and opening a shared pad from mypads2.framapad.org , it recurs...2024-02-20T16:22:46ZPierre TrolléWhen connected and opening a shared pad from mypads2.framapad.org , it recursively opens an infinity of window## Description of the bug
A user Alice invited me to join a folder in her "Folders and Pads" mypads2.framapad.org.
When clicking inside this folder, I found several pads, I opened one of them.
When the pad opens and recursively opens the...## Description of the bug
A user Alice invited me to join a folder in her "Folders and Pads" mypads2.framapad.org.
When clicking inside this folder, I found several pads, I opened one of them.
When the pad opens and recursively opens the same page inside itself (so it loops) see picture
## What should be the normal behavior?
When clicking on a shared pad belonging to Alice, it opens
## What is the current behavior?
When clicking on a shared pad belonging to Alice, it opens a webpage not usable. (So I need to use a Private Tab)
## Do you have a hint about the bug resolution?
is there any iframe in the code?
## What is your version of Etherpad?
i don't know where to see that
## What is your version of MyPads?
i don't know where to see that
## What is your authentication method?
i don't know where to find that
Internal, LDAP or CAS.
## Please, provide some logs if relevant
Nope
I am using Firefox 108.0.1, on Mac
![Capture_d_écran_2023-01-26_à_16.01.04](/uploads/f3579acef6096007648e45113523c5a2/Capture_d_écran_2023-01-26_à_16.01.04.png)https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/265Mails not sent2024-02-20T16:10:26ZManumieMails not sent## Description of the bug
Emails are not sent, when a new user is created or for password recovery
I've tried all possible combinations of SSL and TLS, and I've been restarting etherpad after each config change, because I've read in oth...## Description of the bug
Emails are not sent, when a new user is created or for password recovery
I've tried all possible combinations of SSL and TLS, and I've been restarting etherpad after each config change, because I've read in other issues that it's necessary for STMP setup to be applied
## What should be the normal behavior?
Emails are sent, or a notification should say it wasn't
## What is the current behavior?
No email is sent, no error message in the frontend or in the debug log
## Do you have a hint about the bug resolution?
Nope
## What is your version of Etherpad?
1.8.18
## What is your version of MyPads?
1.7.22
## What is your authentication method?
Internal
## Please, provide some logs if relevant
Debug log at user creation
```
| [2022-05-08 08:47:11.094] [DEBUG] ueberDB - SET - mypads:user:john-dg40wht - {"_id":"john-dg40wht","login":"john","password":{"salt":"","hash":""},"email":"john@mail.com","firstname":"","lastname":"","organization":"","color":"","padNickname":"","eplAuthorToken":"","groups":[],"bookmarks":{"groups":[],"pads":[]},"userlists":{},"active":false,"useLoginAndColorInPads":true,"hideHelp":true,"lang":"fr","ctime":1651999631092} - to buffer
| [2022-05-08 08:47:11.240] [DEBUG] http - 200, POST /mypads/api/user
| [2022-05-08 08:47:12.800] [DEBUG] SessionStore - SET 25cVH_BysYccoCb3Ebvx8tfqTq2MHZiC
| [2022-05-08 08:47:12.800] [DEBUG] ueberDB - SET - sessionstorage:25cVH_BysYccoCb3Ebvx8tfqTq2MHZiC - {"cookie":{"originalMaxAge":null,"expires":null,"secure":false,"httpOnly":true,"path":"/","sameSite":"Lax"},"passport":{}} - to buffer
```
Debug log at password recovery
```
| [2022-05-08 08:43:25.229] [DEBUG] ueberDB - GET - mypads:user:john-p030d57 - {"_id":"john-p030d57","login":"john","password":{"salt":"","hash":""},"email":"john@mail.com","firstname":"john","lastname":"","organization":"","color":"#38d24e","padNickname":"john","eplAuthorToken":"t.v4OoZWTVfFNC0GLfGoC1","groups":["test-sh50dbb"],"bookmarks":{"groups":[],"pads":[]},"userlists":{},"useLoginAndColorInPads":true,"hideHelp":true,"lang":"fr","ctime":1651933893204,"active":true} - from cache
| [2022-05-08 08:43:25.230] [INFO] console - https://pad.whatever.fr/mypads/index.html?/passrecover/cl2x1sj3i000201qw60ym50rv
| [2022-05-08 08:43:29.185] [DEBUG] SessionStore - SET -qloToKYBKrjT3TC62vPmNu3Kd_12Fbu
| [2022-05-08 08:43:29.186] [DEBUG] ueberDB - SET - sessionstorage:-qloToKYBKrjT3TC62vPmNu3Kd_12Fbu - {"cookie":{"originalMaxAge":null,"expires":null,"secure":false,"httpOnly":true,"path":"/","sameSite":"Lax"},"passport":{}} - to buffer
| [2022-05-08 08:43:29.272] [DEBUG] http - 200, GET /
| [2022-05-08 08:43:30.242] [DEBUG] http - 501, POST /mypads/api/passrecover
```
The only thing that seems useful is the 501 http code on the last line, but I don't know what to do with it...
Thanks for you help !https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/246Admin Password does not work when hashed2024-02-20T14:12:16ZGhost UserAdmin Password does not work when hashedIt seems login is not possible anymore when ep_hash_auth is enabled, as mypads does not understand password hashes?
In that case, since ep_hash_auth is a very popular plugin, could you implement reading and comparing the hash of the use...It seems login is not possible anymore when ep_hash_auth is enabled, as mypads does not understand password hashes?
In that case, since ep_hash_auth is a very popular plugin, could you implement reading and comparing the hash of the user, when the setting exists?https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/245Error in HOOK FUNCTION after etherpad-lite update2024-02-20T14:11:24ZMickaelError in HOOK FUNCTION after etherpad-lite updateHi,
I recently updated my etherpad-lite instance to the version : 1.8.6
After update, I tried to restart my instance and I obtain the following error who block starting :
```
UNSETTLED FUNCTION BUG IN HOOK FUNCTION (plugin: ep_mypads, ...Hi,
I recently updated my etherpad-lite instance to the version : 1.8.6
After update, I tried to restart my instance and I obtain the following error who block starting :
```
UNSETTLED FUNCTION BUG IN HOOK FUNCTION (plugin: ep_mypads, function name: /opt/etherpad/etherpad-lite/node_modules/ep_mypads/hooks:expressConfigure, hook: expressConfigure): The hook function neither called the callback nor returned a non-undefined value. This is prohibited because it will result in freezes when a future version of Etherpad updates the hook to support asynchronous behavior.
```
Following the instruction in this issue #219 , I updated mypads plugins to the latest version : 1.7.17 and obtain the same error.
I tried to find some info on the web without success. However after some search I tried to add he following instruction (with success :smile:) :
````
callback(null);
```
In file : /opt/etherpad/etherpad-lite/node_modules/ep_mypads/hooks.js here :
Original code :
```
hooks.expressConfigure = function (name, args, callback) {
var storage = require('./storage.js');
var api = require('./api.js');
var mail = require('./mail.js');
api.init(args.app, function () {
storage.init(function (err) {
if (err) { return callback(err); }
mail.init();
callback(null);
});
});
};
```
Code with my modification :
```
hooks.expressConfigure = function (name, args, callback) {
var storage = require('./storage.js');
var api = require('./api.js');
var mail = require('./mail.js');
api.init(args.app, function () {
storage.init(function (err) {
if (err) { return callback(err); }
mail.init();
callback(null);
});
});
callback(null);
};
```
I'm not used with javascript but I think (hope) some function need modification ?
I'm not sure my hack are good, but I hope it will help to solve somes issues.
Cheers,
Mickaël.https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/242No way to get the history on restricted pads.2024-02-20T14:08:48ZbikepunkNo way to get the history on restricted pads.## Description of the bug
No way to get the history on restricted pads on https://pads.ffdn.org/
## What should be the normal behavior?
display the history
## What is the current behavior?
when clicking the "Historique dynamique" bu...## Description of the bug
No way to get the history on restricted pads on https://pads.ffdn.org/
## What should be the normal behavior?
display the history
## What is the current behavior?
when clicking the "Historique dynamique" button, it re opens the pad in a kinda embedded iframe
![bugMyPads](/uploads/cbf1d7d7bf6caa6b14adb39062cca273/bugMyPads.png)
## Do you have a hint about the bug resolution?
switch pad configuration to public, then the history works like a charm :-)
but your non-public pad is (temporarily) public :-/
## What is your version of Etherpad?
don't know :/
## What is your version of MyPads?
don't know :/
## What is your authentication method?
Internal, I presume.https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/240user entries are duplicated2024-02-20T14:05:35ZJulien Gribonvalduser entries are duplicated## Description of the bug
Since etherpad 1.8.3 mypads:user entries are duplicated after clearing all cookies/local storage tokens
## What should be the normal behavior?
Before etherpad 1.8.3 all users wheren't duplicated
Now it's creati...## Description of the bug
Since etherpad 1.8.3 mypads:user entries are duplicated after clearing all cookies/local storage tokens
## What should be the normal behavior?
Before etherpad 1.8.3 all users wheren't duplicated
Now it's creating each time a new user and the old one is lost with all groups and attached pads
## What is your version of Etherpad?
1.8.3
## What is your version of MyPads?
1.7.16
## What is your authentication method?
CAS
## Please, provide some logs if relevant
datas from user login aren't retrieved
I would have one question, why user entries are created with a token whereas configured login are already unique ? I can't find where this token is added and I would like to test by removing it.https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/238Cannot fully delete pads since 1.7.152024-02-20T14:02:31Z_lilianCannot fully delete pads since 1.7.15## STEP TO REPRODUCE
1) Update ep_mypads to 1.7.15
2) Try to delete a pad from a folder## STEP TO REPRODUCE
1) Update ep_mypads to 1.7.15
2) Try to delete a pad from a folderhttps://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/231LDAP connection doesn't work2024-02-20T13:31:28Zbattosai30LDAP connection doesn't workHi,
## Description of the bug
Can't configure LDAP. When I try to configure it from configuration page, I change default parameters to meet my system and I click save, it just timeout and configuration is not saved. If I write wrong cr...Hi,
## Description of the bug
Can't configure LDAP. When I try to configure it from configuration page, I change default parameters to meet my system and I click save, it just timeout and configuration is not saved. If I write wrong credentials, it directly answers me that my credentials are bad, so clearly the problem comes after a succesful binding.
Logs show nothing (is there a way to get them more verbose ?) except when I write wrong credentials.
Pad is running on LXC container Debian 9.
LDAP server is on another virtual machine and works well with many other solutions.
Regardshttps://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/225Group definition can be corrupted with non-existant pads in its definition2024-02-20T09:49:54ZPorkepixGroup definition can be corrupted with non-existant pads in its definition## Description of the bug
I am not the one who experienced the bug, so I'll try to explain the most accurately with the informations I gathered (I'm the one who fixed manually the bug in the database though).
From what I was explained, ...## Description of the bug
I am not the one who experienced the bug, so I'll try to explain the most accurately with the informations I gathered (I'm the one who fixed manually the bug in the database though).
From what I was explained, a pad was created in a group, and then quickly removed just after. It ended up with the pad that was indeed removed from the database. However, the group still had the pad as a member, which shouldn't happen.
This resulted in a broken group page: the page couldn't be loaded anymore from what I was told, and only did lead to an empty, white page.
## What should be the normal behavior?
A pad removal should accurately remove it from the group too.
Also, in case, such corruption still happen again, it shouldn't prevent from loading the group page, which could also for example help to fix it from the user interface rather than having to dive in an horrible database.
## What is the current behavior?
Group becomes corrupted and can't be accessed anymore
## Do you have a hint about the bug resolution?
A group should only contain existing pads, so maybe having a way to check this.
And if this kind of corruption still happens, maybe have a way to still render the group page with a broken pad URL and the way for a user to remove it (or when rendering the page, check every pad, and if it's not found, purge it from the database.https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/222Error: BACKEND.ERROR.CONFIGURATION.KEY_NOT_FOUND2024-02-20T07:57:47ZukcbError: BACKEND.ERROR.CONFIGURATION.KEY_NOT_FOUNDSince an update from etherpad-lite to version 1.7.5, I see errors in the log file:
```
[2019-01-28 01:29:39.088] [ERROR] console - Error: BACKEND.ERROR.CONFIGURATION.KEY_NOT_FOUND
at Object.callback (/home/etherpad/etherpad-lite/nod...Since an update from etherpad-lite to version 1.7.5, I see errors in the log file:
```
[2019-01-28 01:29:39.088] [ERROR] console - Error: BACKEND.ERROR.CONFIGURATION.KEY_NOT_FOUND
at Object.callback (/home/etherpad/etherpad-lite/node_modules/ep_mypads/model/common.js:176:25)
at /home/etherpad/etherpad-lite/src/node_modules/ueberdb2/CloneAndAtomicLayer.js:100:17
at exports.database.get (/home/etherpad/etherpad-lite/src/node_modules/ueberdb2/CacheAndBufferLayer.js:144:5)
at exports.channels.doOperation [as operatorFunction] (/home/etherpad/etherpad-lite/src/node_modules/ueberdb2/CloneAndAtomicLayer.js:94:18)
at exports.channels.emit (/home/etherpad/etherpad-lite/src/node_modules/channels/channels.js:49:11)
at exports.database.get (/home/etherpad/etherpad-lite/src/node_modules/ueberdb2/CloneAndAtomicLayer.js:62:17)
at Object.module.exports.common.getDel (/home/etherpad/etherpad-lite/node_modules/ep_mypads/model/common.js:173:16)
at Object.wrapper [as get] (/home/etherpad/etherpad-lite/node_modules/lodash/index.js:3592:19)
at Object.module.exports.perm.fn.getPadAndGroup (/home/etherpad/etherpad-lite/node_modules/ep_mypads/perm.js:105:9)
at module.exports.perm.check (/home/etherpad/etherpad-lite/node_modules/ep_mypads/perm.js:264:15)
Error: BACKEND.ERROR.CONFIGURATION.KEY_NOT_FOUND
at Object.callback (/home/etherpad/etherpad-lite/node_modules/ep_mypads/model/common.js:176:25)
at /home/etherpad/etherpad-lite/src/node_modules/ueberdb2/CloneAndAtomicLayer.js:100:17
at exports.database.get (/home/etherpad/etherpad-lite/src/node_modules/ueberdb2/CacheAndBufferLayer.js:144:5)
at exports.channels.doOperation [as operatorFunction] (/home/etherpad/etherpad-lite/src/node_modules/ueberdb2/CloneAndAtomicLayer.js:94:18)
at exports.channels.emit (/home/etherpad/etherpad-lite/src/node_modules/channels/channels.js:49:11)
at exports.database.get (/home/etherpad/etherpad-lite/src/node_modules/ueberdb2/CloneAndAtomicLayer.js:62:17)
at Object.module.exports.common.getDel (/home/etherpad/etherpad-lite/node_modules/ep_mypads/model/common.js:173:16)
at Object.wrapper [as get] (/home/etherpad/etherpad-lite/node_modules/lodash/index.js:3592:19)
at Object.module.exports.perm.fn.getPadAndGroup (/home/etherpad/etherpad-lite/node_modules/ep_mypads/perm.js:105:9)
at module.exports.perm.check (/home/etherpad/etherpad-lite/node_modules/ep_mypads/perm.js:264:15)
```
Where could there be a problem?
ep_mypads v1.7.6https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/218no pad overview after the chat has been deleted2024-02-19T19:23:46Zukcbno pad overview after the chat has been deletedIf you delete a chat, then I can not see the pad overview anymore.
No idea if there is a redirect missing.
mypads v1.7.5If you delete a chat, then I can not see the pad overview anymore.
No idea if there is a redirect missing.
mypads v1.7.5https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/207Un utilisateur authentifié via CAS ne peut pas supprimer son compte2024-02-19T18:26:41ZVictor NoëlUn utilisateur authentifié via CAS ne peut pas supprimer son compteLorsque l'utilisateur tente de supprimer son compte sur ep_mypads, un mot de passe est demandé, mais évidemment, celui du CAS ne marche pas.
En regardant le code, on voit qu'un [mot de passe bidon](auth.js#L95) est utilisé pour les util...Lorsque l'utilisateur tente de supprimer son compte sur ep_mypads, un mot de passe est demandé, mais évidemment, celui du CAS ne marche pas.
En regardant le code, on voit qu'un [mot de passe bidon](auth.js#L95) est utilisé pour les utilisateurs créés via CAS (et LDAP d'ailleurs) et c'est celui là qui est utilisable.
Il faudrait soit :
- interdire de supprimer un tel compte (mauvaise idée je pense)
- permettre de supprimer sans mot de passe
- autre ?https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/206Rendre le mail optionel pour l'authentification CAS2024-02-19T18:25:55ZVictor NoëlRendre le mail optionel pour l'authentification CASQuand on utilise CAS pour l'authentification, si l'utilisateur (déclaré dans le CAS) lors de sa première connexion :
- n'a pas de mail
- ou celui-ci n'a pas le format `X@Y.Z`
Alors ep_mypads reste bloqué sur la page Login.
Il y a dans ...Quand on utilise CAS pour l'authentification, si l'utilisateur (déclaré dans le CAS) lors de sa première connexion :
- n'a pas de mail
- ou celui-ci n'a pas le format `X@Y.Z`
Alors ep_mypads reste bloqué sur la page Login.
Il y a dans la console du browser une erreur 400 : `{"error":"TypeError: BACKEND.ERROR.TYPE.MAIL"}`.https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/196auth_token in URL2024-02-19T18:19:38Zukcbauth_token in URLThe button "open in new tab" links to `https://pad.example.org/p/pad-misc?&auth_token=<auth_token>&userColor=#ccc&userName=user`.
Why not just on `https://pad.example.org/p/pad-misc`?
The auth_token should not be visible in the URL.The button "open in new tab" links to `https://pad.example.org/p/pad-misc?&auth_token=<auth_token>&userColor=#ccc&userName=user`.
Why not just on `https://pad.example.org/p/pad-misc`?
The auth_token should not be visible in the URL.https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/194Ghost Pads in the folder index2024-02-19T10:27:23ZukcbGhost Pads in the folder indexI use the plugin ep_delete_empty_pads.
If empty pads are deleted, they are still listed in the folder index.
The index must be updated if pads no longer exist.I use the plugin ep_delete_empty_pads.
If empty pads are deleted, they are still listed in the folder index.
The index must be updated if pads no longer exist.https://framagit.org/framasoft/Etherpad/ep_mypads/-/issues/104Blocage de compte utilisateur après suppression d'un autre utilisateur lié2018-01-27T11:34:21ZYakuluBlocage de compte utilisateur après suppression d'un autre utilisateur liéJ'ai créé aujourd'hui plusieurs comptes Framapad, dont deux utilisateurs 'user1' et 'user2', puis j'ai rencontré quelques difficultés dont j'ai fait part sur le canal IRC où l'on m'a recommandé d'utiliser ce formulaire de contact.
Je ...J'ai créé aujourd'hui plusieurs comptes Framapad, dont deux utilisateurs 'user1' et 'user2', puis j'ai rencontré quelques difficultés dont j'ai fait part sur le canal IRC où l'on m'a recommandé d'utiliser ce formulaire de contact.
Je me suis connecté via Firefox 42.0 sous l'identifiant user1, et en parallèle via Tor Browser Bundle sous l'identifiant user2, afin de pouvoir faire quelques tests de partage entre utilisateurs.
En tant que user1 j'ai créé un dossier contenant un pad, partagé avec user2. Le user1 a supprimé le pad partagé avec le user2 alors que ce pad était en cours d'édition chez le user2. Après avoir fait un refresh sur la page, le user2 voit un message d'erreur ressemblant à "pad introuvable".
J'ai en parallèle supprimé le user1 qui était un compte limité aux tests.
Depuis dès que je me connecte avec le user2 je reste bloqué sur la page "Mes dossier & pads". Impossible de naviguer entre les différents onglets (favoris, listes d'utilisateurs, profil, déconnexion). Ensuite plusieurs messages "Error undefined" sont apparus dans la zone des notifications en bas à droite.
Via un user3 tout marche très bien. J'imagine donc que j'ai fait buger quelque chose chez le user2.