lemonldap-ng issueshttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues2024-03-27T10:22:31Zhttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/3125Add base class for "reset password by SMS"2024-03-27T10:22:31ZYaddAdd base class for "reset password by SMS"SMS API are not standard, however we could easily have a base class to prepare that.
## Design proposition
* Move part of [MailPasswordReset](lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/MailPasswordReset.pm) into "Lib/PasswordR...SMS API are not standard, however we could easily have a base class to prepare that.
## Design proposition
* Move part of [MailPasswordReset](lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/MailPasswordReset.pm) into "Lib/PasswordReset.pm"
* Maybe create a "Lib/SMSBase.pm" that stores custom parameters somewhere and just needs a "sendSMS" method in sub classes
* Create a "Lib/SMS.pm" that requires a class that exposes a `sendSMS($phone, $text)`
* Create a "Plugins/SMSPasswordResetBase.pm" that inherits from "Lib/PasswordReset.pm" and uses "Lib/SMS.pm"2.20.0YaddYaddhttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/3082Debian packaging2024-03-27T11:25:29ZChristophe Maudouxchrmdx@gmail.comDebian packaging### Summary
I am not sure to well understand LL::NG packaging...
What is the purpose and difference between these files?
```
lemonldap-ng/lemonldap-ng-handler/eg/llng-server.psgi
lemonldap-ng/lemonldap-ng-common/eg/llng-app.psgi
lemon...### Summary
I am not sure to well understand LL::NG packaging...
What is the purpose and difference between these files?
```
lemonldap-ng/lemonldap-ng-handler/eg/llng-server.psgi
lemonldap-ng/lemonldap-ng-common/eg/llng-app.psgi
lemonldap-ng/fastcgi-server/psgi/llngapp.psgi
```
Futhermore, hook to load customHandler presents in files below:
```
lemonldap-ng/fastcgi-server/sbin/llng-fastcgi-server
lemonldap-ng/fastcgi-server/psgi/llngapp.psgi
```
is missing in file below:
```
lemonldap-ng/lemonldap-ng-handler/eg/llng-server.psgi
```
like the middleware to downgrade UTF8 is missing in
```
lemonldap-ng/fastcgi-server/psgi/llngapp.psgi
```
Last question, in LL::NG code, we refer to 'llng-fastcgi-server'
```
fastcgi-server/systemd/llng-fastcgi-server.service
```
But in Debian packaging we refer to 'lemonldap-ng-fastcgi-server'
```
lemonldap-ng/debian/lemonldap-ng-fastcgi-server.service
```
### Design proposition
It could be interesting to harmonize all theses files2.20.0Xavier BachelotXavier Bachelothttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/3052Handle USR1 signal to launch configuration reload2024-03-28T07:43:21ZYaddHandle USR1 signal to launch configuration reloadSee !413See !4132.20.0YaddYaddhttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/3005Warning message in logs: Route "renewcaptcha" redefined2023-12-14T16:54:17ZClément OUDOTWarning message in logs: Route "renewcaptcha" redefinedAt each restart/reload, we see this message in logs:
```
[Thu Sep 7 15:12:47 2023] [LLNG:1079613] [warn] Route "renewcaptcha" redefined
```
Not a real issue but would be better to fix.At each restart/reload, we see this message in logs:
```
[Thu Sep 7 15:12:47 2023] [LLNG:1079613] [warn] Route "renewcaptcha" redefined
```
Not a real issue but would be better to fix.In discussionClément OUDOTClément OUDOThttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/2902Implement "OpenID Connect Native SSO for Mobile Apps 1.0"2024-03-28T07:43:42ZYaddImplement "OpenID Connect Native SSO for Mobile Apps 1.0"There is a new specification in OpenID-Connect (draft):
https://openid.net/specs/openid-connect-native-sso-1_0.htmlThere is a new specification in OpenID-Connect (draft):
https://openid.net/specs/openid-connect-native-sso-1_0.html2.20.0YaddYaddhttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/2416Use the same terminology in base and in manager2020-12-15T17:03:18ZPaul CurieUse the same terminology in base and in managerToday I found out that "None" in the manager, is "Null" in db for "passwordDB" (this is an example).
We document a "Null" auth : https://lemonldap-ng.org/documentation/latest/authnull.html
I think I would be a good idea to use "Null" i...Today I found out that "None" in the manager, is "Null" in db for "passwordDB" (this is an example).
We document a "Null" auth : https://lemonldap-ng.org/documentation/latest/authnull.html
I think I would be a good idea to use "Null" inside the manager instead of "None"
I will try to provide a PR later, let me know what to you think.In discussionPaul CuriePaul Curiehttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/2218Manager can generates non unique application id in menu2021-06-24T13:06:52ZClément OUDOTManager can generates non unique application id in menuWhen creating a new application in menu from Manager, the application id is computed from application name.
If this application has the same name than an application in another category, then it will get the same id, which is possible a...When creating a new application in menu from Manager, the application id is computed from application name.
If this application has the same name than an application in another category, then it will get the same id, which is possible as applications are sorted by categories in the application hash. But if you change the dislay rule of the first application, the second application will also be impacted, as they have the same id, and this id is removed from applications shown in the portal.
I am not sure on how to fix this...3.0.0Clément OUDOTClément OUDOThttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/2147LLNG should accept endpoints in any character case2020-08-14T13:44:34ZYaddLLNG should accept endpoints in any character caseThis requires just to change Common/PSGI/Route to transform any route in lowercaseThis requires just to change Common/PSGI/Route to transform any route in lowercaseIn discussionYaddYaddhttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/2035Fix end to end tests2020-12-22T13:37:06ZClément OUDOTFix end to end testsEnd to end tests are not working anymore:
```
[11:07:52] I/launcher - Running 1 instances of WebDriver
[11:07:52] I/local - Starting selenium standalone server...
[11:07:53] I/local - Selenium standalone server started at http://192.168....End to end tests are not working anymore:
```
[11:07:52] I/launcher - Running 1 instances of WebDriver
[11:07:52] I/local - Starting selenium standalone server...
[11:07:53] I/local - Selenium standalone server started at http://192.168.47.55:55845/wd/hub
Started
...FFFFFFFF
Failures:
1) 00 Lemonldap::NG Auth mechanism should authenticate with history
Message:
Expected 'Identifiant ou mot de passe incorrect' to equal 'Mot de passe ou identifiant incorrect'.
Stack:
Error: Failed expectation
at UserContext.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/00-auth.js:69:75)
at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112:25
at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1077:7)
at ControlFlow.promise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2505:12)
at schedulerExecute (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2974:25)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
Message:
Failed: no such element: Unable to locate element: {"method":"css selector","selector":"[trspan="goToPortal"]"}
(Session info: chrome=78.0.3904.97)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'ader-worteks', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.0.0-37-generic', java.version: '1.8.0_222'
Driver info: driver.version: unknown
Stack:
NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"[trspan="goToPortal"]"}
(Session info: chrome=78.0.3904.97)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'ader-worteks', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.0.0-37-generic', java.version: '1.8.0_222'
Driver info: driver.version: unknown
at Object.checkLegacyResponse (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:546:15)
at parseHttpResponse (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:509:13)
at doSend.then.response (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:441:30)
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: WebDriver.findElement(By(css selector, [trspan="goToPortal"]))
at thenableWebDriverProxy.schedule (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at thenableWebDriverProxy.findElement (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:1014:17)
at UserContext.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/00-auth.js:70:22)
at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112:25
at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1077:7)
at ControlFlow.promise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2505:12)
at schedulerExecute (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2974:25)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: WebElement.click()
at thenableWebDriverProxy.schedule (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at WebElementPromise.schedule_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:2010:25)
at WebElementPromise.click (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:2092:17)
at UserContext.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/00-auth.js:70:67)
at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112:25
at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1077:7)
at ControlFlow.promise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2505:12)
at schedulerExecute (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2974:25)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: Run it("should authenticate with history") in control flow
at UserContext.<anonymous> (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
From asynchronous test:
Error
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/00-auth.js:60:5)
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/00-auth.js:6:3)
at Object.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/00-auth.js:5:1)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (/usr/lib/coffee-script/lib/coffee-script/register.js:45:36)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at /usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:93:5
at Array.forEach (<anonymous>)
at Jasmine.loadSpecs (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:92:18)
at Jasmine.execute (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:197:8)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:132:15
at Function.promise (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:682:9)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:104:14
at _fulfilled (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:834:54)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:863:30
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:796:13)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:556:49
at runSingle (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:137:13)
at flush (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:125:13)
at process._tickCallback (internal/process/next_tick.js:61:11)
2) 00 Lemonldap::NG Auth mechanism should display history
Message:
Expected 0 to equal 3.
Stack:
Error: Failed expectation
at /home/clement/dev/lemonldap-ng/e2e-tests/portal/00-auth.js:85:30
at ManagedPromise.invokeCallback_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1376:14)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2927:27)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
Message:
Expected 0 to equal 3.
Stack:
Error: Failed expectation
at /home/clement/dev/lemonldap-ng/e2e-tests/portal/00-auth.js:89:30
at ManagedPromise.invokeCallback_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1376:14)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2927:27)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
Message:
Failed: Cannot read property 'getText' of undefined
Stack:
TypeError: Cannot read property 'getText' of undefined
at /home/clement/dev/lemonldap-ng/e2e-tests/portal/00-auth.js:90:25
at ManagedPromise.invokeCallback_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1376:14)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2927:27)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: Run it("should display history") in control flow
at UserContext.<anonymous> (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
From asynchronous test:
Error
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/00-auth.js:82:5)
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/00-auth.js:6:3)
at Object.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/00-auth.js:5:1)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (/usr/lib/coffee-script/lib/coffee-script/register.js:45:36)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at /usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:93:5
at Array.forEach (<anonymous>)
at Jasmine.loadSpecs (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:92:18)
at Jasmine.execute (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:197:8)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:132:15
at Function.promise (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:682:9)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:104:14
at _fulfilled (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:834:54)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:863:30
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:796:13)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:556:49
at runSingle (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:137:13)
at flush (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:125:13)
at process._tickCallback (internal/process/next_tick.js:61:11)
3) 0 Lemonldap::NG Portal should display Menu Should have four buttons
Message:
Failed: no such element: Unable to locate element: {"method":"xpath","selector":"//button[@type='button']"}
(Session info: chrome=78.0.3904.97)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'ader-worteks', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.0.0-37-generic', java.version: '1.8.0_222'
Driver info: driver.version: unknown
Stack:
NoSuchElementError: no such element: Unable to locate element: {"method":"xpath","selector":"//button[@type='button']"}
(Session info: chrome=78.0.3904.97)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'ader-worteks', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.0.0-37-generic', java.version: '1.8.0_222'
Driver info: driver.version: unknown
at Object.checkLegacyResponse (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:546:15)
at parseHttpResponse (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:509:13)
at doSend.then.response (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:441:30)
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: WebDriver.findElement(By(xpath, //button[@type='button']))
at thenableWebDriverProxy.schedule (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at thenableWebDriverProxy.findElement (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:1014:17)
at UserContext.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/01-menu.js:8:22)
at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112:25
at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1077:7)
at ControlFlow.promise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2505:12)
at schedulerExecute (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2974:25)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
From: Task: WebElement.click()
at thenableWebDriverProxy.schedule (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at WebElementPromise.schedule_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:2010:25)
at WebElementPromise.click (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:2092:17)
at UserContext.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/01-menu.js:8:72)
at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112:25
at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1077:7)
at ControlFlow.promise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2505:12)
at schedulerExecute (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2974:25)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
From: Task: Run it("Should have four buttons") in control flow
at UserContext.<anonymous> (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
From asynchronous test:
Error
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/01-menu.js:6:5)
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/01-menu.js:5:3)
at Object.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/01-menu.js:4:1)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (/usr/lib/coffee-script/lib/coffee-script/register.js:45:36)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at /usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:93:5
at Array.forEach (<anonymous>)
at Jasmine.loadSpecs (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:92:18)
at Jasmine.execute (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:197:8)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:132:15
at Function.promise (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:682:9)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:104:14
at _fulfilled (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:834:54)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:863:30
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:796:13)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:556:49
at runSingle (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:137:13)
at flush (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:125:13)
at process._tickCallback (internal/process/next_tick.js:61:11)
4) 0 Lemonldap::NG Portal should display Menu Should have seven links
Message:
Expected 0 to equal 7.
Stack:
Error: Failed expectation
at /home/clement/dev/lemonldap-ng/e2e-tests/portal/01-menu.js:75:30
at ManagedPromise.invokeCallback_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1376:14)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2927:27)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
Message:
Failed: Cannot read property 'getText' of undefined
Stack:
TypeError: Cannot read property 'getText' of undefined
at /home/clement/dev/lemonldap-ng/e2e-tests/portal/01-menu.js:76:25
at ManagedPromise.invokeCallback_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1376:14)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2927:27)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: Run it("Should have seven links") in control flow
at UserContext.<anonymous> (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
From asynchronous test:
Error
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/01-menu.js:73:5)
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/01-menu.js:5:3)
at Object.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/01-menu.js:4:1)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (/usr/lib/coffee-script/lib/coffee-script/register.js:45:36)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at /usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:93:5
at Array.forEach (<anonymous>)
at Jasmine.loadSpecs (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:92:18)
at Jasmine.execute (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:197:8)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:132:15
at Function.promise (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:682:9)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:104:14
at _fulfilled (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:834:54)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:863:30
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:796:13)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:556:49
at runSingle (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:137:13)
at flush (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:125:13)
at process._tickCallback (internal/process/next_tick.js:61:11)
5) 10 Lemonldap::NG Second Factor Manager Should have two links in dropDown menu
Message:
Failed: no such element: Unable to locate element: {"method":"xpath","selector":"//button[@type='button']"}
(Session info: chrome=78.0.3904.97)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'ader-worteks', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.0.0-37-generic', java.version: '1.8.0_222'
Driver info: driver.version: unknown
Stack:
NoSuchElementError: no such element: Unable to locate element: {"method":"xpath","selector":"//button[@type='button']"}
(Session info: chrome=78.0.3904.97)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'ader-worteks', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.0.0-37-generic', java.version: '1.8.0_222'
Driver info: driver.version: unknown
at Object.checkLegacyResponse (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:546:15)
at parseHttpResponse (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:509:13)
at doSend.then.response (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:441:30)
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: WebDriver.findElement(By(xpath, //button[@type='button']))
at thenableWebDriverProxy.schedule (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at thenableWebDriverProxy.findElement (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:1014:17)
at UserContext.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:15:22)
at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112:25
at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1077:7)
at ControlFlow.promise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2505:12)
at schedulerExecute (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2974:25)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
From: Task: WebElement.click()
at thenableWebDriverProxy.schedule (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at WebElementPromise.schedule_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:2010:25)
at WebElementPromise.click (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:2092:17)
at UserContext.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:15:72)
at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112:25
at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1077:7)
at ControlFlow.promise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2505:12)
at schedulerExecute (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2974:25)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
From: Task: Run it("Should have two links in dropDown menu") in control flow
at UserContext.<anonymous> (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
From asynchronous test:
Error
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:6:5)
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:5:3)
at Object.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:4:1)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (/usr/lib/coffee-script/lib/coffee-script/register.js:45:36)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at /usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:93:5
at Array.forEach (<anonymous>)
at Jasmine.loadSpecs (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:92:18)
at Jasmine.execute (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:197:8)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:132:15
at Function.promise (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:682:9)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:104:14
at _fulfilled (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:834:54)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:863:30
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:796:13)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:556:49
at runSingle (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:137:13)
at flush (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:125:13)
at process._tickCallback (internal/process/next_tick.js:61:11)
6) 10 Lemonldap::NG Second Factor Manager Should display 2FA Manager
Message:
Failed: no such element: Unable to locate element: {"method":"css selector","selector":"[trspan="choose2f"]"}
(Session info: chrome=78.0.3904.97)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'ader-worteks', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.0.0-37-generic', java.version: '1.8.0_222'
Driver info: driver.version: unknown
Stack:
NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"[trspan="choose2f"]"}
(Session info: chrome=78.0.3904.97)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'ader-worteks', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.0.0-37-generic', java.version: '1.8.0_222'
Driver info: driver.version: unknown
at Object.checkLegacyResponse (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:546:15)
at parseHttpResponse (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:509:13)
at doSend.then.response (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:441:30)
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: WebDriver.findElement(By(css selector, [trspan="choose2f"]))
at thenableWebDriverProxy.schedule (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at thenableWebDriverProxy.findElement (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:1014:17)
at UserContext.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:31:31)
at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112:25
at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1077:7)
at ControlFlow.promise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2505:12)
at schedulerExecute (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2974:25)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: WebElement.getText()
at thenableWebDriverProxy.schedule (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at WebElementPromise.schedule_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:2010:25)
at WebElementPromise.getText (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:2277:17)
at UserContext.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:31:74)
at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112:25
at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1077:7)
at ControlFlow.promise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2505:12)
at schedulerExecute (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2974:25)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: Run it("Should display 2FA Manager") in control flow
at UserContext.<anonymous> (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
From asynchronous test:
Error
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:30:5)
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:5:3)
at Object.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:4:1)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (/usr/lib/coffee-script/lib/coffee-script/register.js:45:36)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at /usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:93:5
at Array.forEach (<anonymous>)
at Jasmine.loadSpecs (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:92:18)
at Jasmine.execute (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:197:8)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:132:15
at Function.promise (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:682:9)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:104:14
at _fulfilled (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:834:54)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:863:30
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:796:13)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:556:49
at runSingle (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:137:13)
at flush (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:125:13)
at process._tickCallback (internal/process/next_tick.js:61:11)
7) 10 Lemonldap::NG Second Factor Manager Should display and submit TOTP form
Message:
Expected 0 to equal 4.
Stack:
Error: Failed expectation
at /home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:61:30
at ManagedPromise.invokeCallback_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1376:14)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2927:27)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
Message:
Failed: Cannot read property 'getText' of undefined
Stack:
TypeError: Cannot read property 'getText' of undefined
at /home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:62:25
at ManagedPromise.invokeCallback_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1376:14)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2927:27)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: Run it("Should display and submit TOTP form") in control flow
at UserContext.<anonymous> (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
From asynchronous test:
Error
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:59:5)
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:5:3)
at Object.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/10-sfaManager.js:4:1)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (/usr/lib/coffee-script/lib/coffee-script/register.js:45:36)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at /usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:93:5
at Array.forEach (<anonymous>)
at Jasmine.loadSpecs (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:92:18)
at Jasmine.execute (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:197:8)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:132:15
at Function.promise (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:682:9)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:104:14
at _fulfilled (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:834:54)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:863:30
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:796:13)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:556:49
at runSingle (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:137:13)
at flush (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:125:13)
at process._tickCallback (internal/process/next_tick.js:61:11)
8) 99 Lemonldap::NG auth mechanism should allow logout
Message:
Expected 0 to equal 4.
Stack:
Error: Failed expectation
at /home/clement/dev/lemonldap-ng/e2e-tests/portal/99-logout.js:8:25
at ManagedPromise.invokeCallback_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1376:14)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2927:27)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
Message:
Failed: Cannot read property 'click' of undefined
Stack:
TypeError: Cannot read property 'click' of undefined
at /home/clement/dev/lemonldap-ng/e2e-tests/portal/99-logout.js:9:13
at ManagedPromise.invokeCallback_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1376:14)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2927:27)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: Run it("should allow logout") in control flow
at UserContext.<anonymous> (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
From asynchronous test:
Error
at Suite.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/99-logout.js:6:3)
at Object.<anonymous> (/home/clement/dev/lemonldap-ng/e2e-tests/portal/99-logout.js:5:1)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (/usr/lib/coffee-script/lib/coffee-script/register.js:45:36)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at /usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:93:5
at Array.forEach (<anonymous>)
at Jasmine.loadSpecs (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:92:18)
at Jasmine.execute (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:197:8)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:132:15
at Function.promise (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:682:9)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:104:14
at _fulfilled (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:834:54)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:863:30
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:796:13)
at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:556:49
at runSingle (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:137:13)
at flush (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:125:13)
at process._tickCallback (internal/process/next_tick.js:61:11)
11 specs, 8 failures
Finished in 4.643 seconds
[11:07:58] I/local - Shutting down selenium standalone server.
[11:07:58] I/launcher - 0 instance(s) of WebDriver still running
[11:07:58] I/launcher - chrome #01 failed 8 test(s)
[11:07:58] I/launcher - overall: 8 failed spec(s)
[11:07:58] E/launcher - Process exited with error code 1
make: *** [Makefile:576: launch_protractor] Error 1
```3.0.0https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/1839Define a password policy for Auth::DBI2019-11-21T17:18:08ZGuillaumeDefine a password policy for Auth::DBI### Summary
For some reason, we would like to have a better password policy for Auth::UserDB function like we can have in LDAP :
- Regexp (we can easily do it on front, but on back, we need specific development)
- Automatic password exp...### Summary
For some reason, we would like to have a better password policy for Auth::UserDB function like we can have in LDAP :
- Regexp (we can easily do it on front, but on back, we need specific development)
- Automatic password expiration
- Block the account if too many attempt. Reset password unblock the account (or delay to retry ?)
### Design proposition
New configuration for the regexp, the validity of the password and the number of attempt allowed
New column in DB (so configuration) for expiration date and the number of attempt before resetting password3.0.0https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/1789Add a way to activate and display logs in the manager GUI2019-11-21T17:32:02ZJean-François VincentAdd a way to activate and display logs in the manager GUI### Summary
Add a way to change the log level of lemonldap and to display the log content in real time in the GUI.
### Design proposition
Somewhere in the manager GUI, add a section to manage logs with:
- a select widget to change the...### Summary
Add a way to change the log level of lemonldap and to display the log content in real time in the GUI.
### Design proposition
Somewhere in the manager GUI, add a section to manage logs with:
- a select widget to change the log level.
- a button to display another page with the content of logs displayed in real time.
It's very frustrated to have to do it manually on distant hosts.
**Warning point:** it probably need to be shared between instances in case of multi-lemon architecture.Backloghttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/1731Add rules for reset password by mail use2019-11-21T15:16:08ZClément OUDOTAdd rules for reset password by mail useWe already have the possibility to have a rule to display the standard password form but for reset password, we can just set the search filter. When user is not found, we have a default error message, but it could be nice to have the pos...We already have the possibility to have a rule to display the standard password form but for reset password, we can just set the search filter. When user is not found, we have a default error message, but it could be nice to have the possibility to define error cases and associated messages, like we have done with `grantSessionRules`.
The most significant use case is when we connect to an OpenLDAP server where we have some local accounts (with password) and external accounts (with SASL delegation). We don't want to allow external accounts to reset their password.3.0.0Clément OUDOTClément OUDOThttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/1690Most viewed applications category in Menu2024-01-23T13:28:23ZClément OUDOTMost viewed applications category in MenuA new feature request: have a specific category to list the most accessed applications.
We need to have update a counter from Handler and from Issuer CAS/SAML/OIDC, this counter will be stored in persistent session.
The difficulty is a...A new feature request: have a specific category to list the most accessed applications.
We need to have update a counter from Handler and from Issuer CAS/SAML/OIDC, this counter will be stored in persistent session.
The difficulty is also to map an application item in menu to a vhost/CAS/SAML/OIDC entry.3.0.0Clément OUDOTClément OUDOThttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/1393Trusted Device (Yubikey)2019-12-13T13:43:17ZMathieu Lecompte-melançonTrusted Device (Yubikey)### Summary
Use a device like Yubikey or custum certificat to trust a device who try to authenticate.
### Design proposition
The main idea is to told to LLNG a list of device who can acces to some critical website,
It's not like a 2F ...### Summary
Use a device like Yubikey or custum certificat to trust a device who try to authenticate.
### Design proposition
The main idea is to told to LLNG a list of device who can acces to some critical website,
It's not like a 2F who is linked to a user. It's more like if you want to access to this web site you have to be on a secure computer(device) and you need to authenticate yourself also if the device is authorised to the website...3.0.0Christophe Maudouxchrmdx@gmail.comChristophe Maudouxchrmdx@gmail.comhttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/764Reset password by SMS2019-11-21T16:49:07ZClément OUDOTReset password by SMSReset password by SMS, using a SMS webservice.Reset password by SMS, using a SMS webservice.BacklogChristophe Maudouxchrmdx@gmail.comChristophe Maudouxchrmdx@gmail.com