Przeglądaj źródła

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
Nassim Bounouas 4 lat temu
rodzic
commit
50b4dcce56

+ 2 - 2
.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
 ```
 

+ 1 - 1
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
     }
 

+ 3 - 3
server/models/account/user.ts

@@ -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 } ]
       }
     }
 

+ 11 - 0
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 () {