external ldap: ensure dashboard login does totp check

This commit is contained in:
Girish Ramakrishnan
2024-01-08 11:55:35 +01:00
parent 6cdb448f62
commit 5b7667fa4d
5 changed files with 18 additions and 21 deletions
+8 -8
View File
@@ -331,39 +331,39 @@ describe('External LDAP', function () {
});
it('fails for unknown user', async function () {
const [error] = await safe(externalLdap.verifyPassword('badusername', 'badpassword', null));
const [error] = await safe(externalLdap.verifyPassword('badusername', 'badpassword', {}));
expect(error.reason).to.be(BoxError.NOT_FOUND);
});
it('fails for bad password', async function () {
const [error] = await safe(externalLdap.verifyPassword('maximus', 'badpassword', null));
const [error] = await safe(externalLdap.verifyPassword('maximus', 'badpassword', {}));
expect(error.reason).to.be(BoxError.INVALID_CREDENTIALS);
});
it('succeeds for valid password', async function () {
const u = await externalLdap.verifyPassword('maximus', LDAP_SHARED_PASSWORD, null);
const u = await externalLdap.verifyPassword('maximus', LDAP_SHARED_PASSWORD, {});
expect(u.username).to.be('maximus');
});
it('enable totp', () => gLdapUsers[0].has2fa = true);
it('succeeds when totp required and no totp', async function () {
const u = await externalLdap.verifyPassword('maximus', LDAP_SHARED_PASSWORD, null);
it('succeeds when totp required and skip totp', async function () {
const u = await externalLdap.verifyPassword('maximus', LDAP_SHARED_PASSWORD, { skipTotpCheck: true });
expect(u.username).to.be('maximus');
});
it('fails when totp required and empty totp', async function () {
const [error] = await safe(externalLdap.verifyPassword('maximus', LDAP_SHARED_PASSWORD, ''));
const [error] = await safe(externalLdap.verifyPassword('maximus', LDAP_SHARED_PASSWORD, { skipTotpCheck: false, totpToken: '' }));
expect(error.reason).to.be(BoxError.INVALID_CREDENTIALS);
});
it('fails when totp required and bad totp', async function () {
const [error] = await safe(externalLdap.verifyPassword('maximus', LDAP_SHARED_PASSWORD, 'badtotp'));
const [error] = await safe(externalLdap.verifyPassword('maximus', LDAP_SHARED_PASSWORD, { skipTotpCheck: false, totpToken: 'badtotp' }));
expect(error.reason).to.be(BoxError.INVALID_CREDENTIALS);
});
it('succeeds when totp required and good totp', async function () {
const u = await externalLdap.verifyPassword('maximus', LDAP_SHARED_PASSWORD, LDAP_SHARED_TOTP_TOKEN);
const u = await externalLdap.verifyPassword('maximus', LDAP_SHARED_PASSWORD, { skipTotpCheck: false, totpToken: LDAP_SHARED_TOTP_TOKEN });
expect(u.username).to.be('maximus');
});
});