From 50b4dcce56275e57fc15ade7529f5c501cad150d Mon Sep 17 00:00:00 2001 From: Nassim Bounouas Date: Tue, 2 Jul 2019 11:16:33 +0200 Subject: [PATCH] Fix/connection with email (#1917) * #1916 Load user by email - insensitive query * Revert "Case insensitive login" This reverts commit c1521ca3d757bee91f7dfbb15b3717162bf4997d. * #1916 Load user - insensitive query for username and sensitive for email * #1916 Unit test for insensitive username login && documentation --- .github/CONTRIBUTING.md | 4 ++-- client/src/app/core/auth/auth.service.ts | 2 +- server/models/account/user.ts | 6 +++--- server/tests/api/users/users.ts | 11 +++++++++++ 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index bbf06c87f..1672ebfa9 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -181,13 +181,13 @@ Then, we can create the databases (if they don't already exist): ``` $ sudo -u postgres createuser you_username --createdb --superuser -$ createdb -O peertube peertube_test{1,2,3,4,5,6} +$ npm run clean:server:test ``` Build the application and run the unit/integration tests: ``` -$ npm run build +$ npm run build -- --light $ npm test ``` diff --git a/client/src/app/core/auth/auth.service.ts b/client/src/app/core/auth/auth.service.ts index 4fc04a05c..eaa822e0f 100644 --- a/client/src/app/core/auth/auth.service.ts +++ b/client/src/app/core/auth/auth.service.ts @@ -153,7 +153,7 @@ export class AuthService { response_type: 'code', grant_type: 'password', scope: 'upload', - username: username.toLowerCase(), + username, password } diff --git a/server/models/account/user.ts b/server/models/account/user.ts index aac691d66..0f425bb82 100644 --- a/server/models/account/user.ts +++ b/server/models/account/user.ts @@ -367,7 +367,7 @@ export class UserModel extends Model { static loadByUsername (username: string) { const query = { where: { - username + username: { [ Op.iLike ]: username } } } @@ -377,7 +377,7 @@ export class UserModel extends Model { static loadByUsernameAndPopulateChannels (username: string) { const query = { where: { - username + username: { [ Op.iLike ]: username } } } @@ -399,7 +399,7 @@ export class UserModel extends Model { const query = { where: { - [ Op.or ]: [ { username }, { email } ] + [ Op.or ]: [ { username: { [ Op.iLike ]: username } }, { email } ] } } diff --git a/server/tests/api/users/users.ts b/server/tests/api/users/users.ts index 403d1a089..6fc2a070f 100644 --- a/server/tests/api/users/users.ts +++ b/server/tests/api/users/users.ts @@ -116,6 +116,17 @@ describe('Test users', function () { accessToken = res.body.access_token }) + + it('Should be able to login with an insensitive username', async function () { + const user = { username: 'RoOt', password: server.user.password } + const res = await login(server.url, server.client, user, 200) + + const user2 = { username: 'rOoT', password: server.user.password } + const res2 = await login(server.url, server.client, user2, 200) + + const user3 = { username: 'ROOt', password: server.user.password } + const res3 = await login(server.url, server.client, user3, 200) + }) }) describe('Upload', function () {