From: Nassim Bounouas Date: Tue, 2 Jul 2019 09:16:33 +0000 (+0200) Subject: Fix/connection with email (#1917) X-Git-Tag: v1.4.0-rc.1~140 X-Git-Url: https://git.immae.eu/?a=commitdiff_plain;h=50b4dcce56275e57fc15ade7529f5c501cad150d;p=github%2FChocobozzz%2FPeerTube.git 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 --- 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 () {