]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Fix/connection with email (#1917)
authorNassim Bounouas <NassimBounouas@users.noreply.github.com>
Tue, 2 Jul 2019 09:16:33 +0000 (11:16 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 2 Jul 2019 09:16:33 +0000 (11:16 +0200)
* #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
client/src/app/core/auth/auth.service.ts
server/models/account/user.ts
server/tests/api/users/users.ts

index bbf06c87fb2bb2c6145c1fd55dff7cc6a3c8538c..1672ebfa9b7523eee8982f9f6cb9b32f6b6650c0 100644 (file)
@@ -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
 ```
 
index 4fc04a05c1f8c05dd88bccd42ed421c158c591e7..eaa822e0f99aea41852099b1175807e96928be07 100644 (file)
@@ -153,7 +153,7 @@ export class AuthService {
       response_type: 'code',
       grant_type: 'password',
       scope: 'upload',
-      username: username.toLowerCase(),
+      username,
       password
     }
 
index aac691d66f29db9523d6ee2ec58fdcab7336aa62..0f425bb820b88848eb9df7bcf5567064431684a0 100644 (file)
@@ -367,7 +367,7 @@ export class UserModel extends Model<UserModel> {
   static loadByUsername (username: string) {
     const query = {
       where: {
-        username
+        username: { [ Op.iLike ]: username }
       }
     }
 
@@ -377,7 +377,7 @@ export class UserModel extends Model<UserModel> {
   static loadByUsernameAndPopulateChannels (username: string) {
     const query = {
       where: {
-        username
+        username: { [ Op.iLike ]: username }
       }
     }
 
@@ -399,7 +399,7 @@ export class UserModel extends Model<UserModel> {
 
     const query = {
       where: {
-        [ Op.or ]: [ { username }, { email } ]
+        [ Op.or ]: [ { username: { [ Op.iLike ]: username } }, { email } ]
       }
     }
 
index 403d1a0897e6f06ff41629ad8d3442caf08c0e0f..6fc2a070f324bd72805171890f282b73ab3c605a 100644 (file)
@@ -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 () {