Fix/connection with email (#1917)

* #1916 Load user by email - insensitive query

* Revert "Case insensitive login"

This reverts commit c1521ca3d7.

* #1916 Load user - insensitive query for username and sensitive for email

* #1916 Unit test for insensitive username login && documentation
This commit is contained in:
Nassim Bounouas 2019-07-02 11:16:33 +02:00 committed by Chocobozzz
parent c1109b45f6
commit 50b4dcce56
4 changed files with 17 additions and 6 deletions

View 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
```

View File

@ -153,7 +153,7 @@ export class AuthService {
response_type: 'code',
grant_type: 'password',
scope: 'upload',
username: username.toLowerCase(),
username,
password
}

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

View 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 () {