diff options
author | Chocobozzz <me@florianbigard.com> | 2022-08-03 10:10:26 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2022-08-03 10:10:26 +0200 |
commit | 0b6f531653a7a24f82ad65564479a70a9326301a (patch) | |
tree | f65d9c80e0e8ced86a8a9f7b00952bb04413a5b7 /server/tests | |
parent | 35a0a924830d84f9ec28c129ec85cb1f45011fb8 (diff) | |
download | PeerTube-0b6f531653a7a24f82ad65564479a70a9326301a.tar.gz PeerTube-0b6f531653a7a24f82ad65564479a70a9326301a.tar.zst PeerTube-0b6f531653a7a24f82ad65564479a70a9326301a.zip |
Suffix external auth username on conflict
Diffstat (limited to 'server/tests')
-rw-r--r-- | server/tests/fixtures/peertube-plugin-test-external-auth-two/main.js | 16 | ||||
-rw-r--r-- | server/tests/plugins/external-auth.ts | 39 |
2 files changed, 50 insertions, 5 deletions
diff --git a/server/tests/fixtures/peertube-plugin-test-external-auth-two/main.js b/server/tests/fixtures/peertube-plugin-test-external-auth-two/main.js index 1604a7c41..755dbb62b 100644 --- a/server/tests/fixtures/peertube-plugin-test-external-auth-two/main.js +++ b/server/tests/fixtures/peertube-plugin-test-external-auth-two/main.js | |||
@@ -65,6 +65,22 @@ async function register ({ | |||
65 | } | 65 | } |
66 | }) | 66 | }) |
67 | } | 67 | } |
68 | |||
69 | { | ||
70 | const result = registerExternalAuth({ | ||
71 | authName: 'external-auth-7', | ||
72 | authDisplayName: () => 'External Auth 7', | ||
73 | onAuthRequest: (req, res) => { | ||
74 | result.userAuthenticated({ | ||
75 | req, | ||
76 | res, | ||
77 | username: 'existing_user2', | ||
78 | email: 'custom_email_existing_user2@example.com', | ||
79 | displayName: 'Existing user 2' | ||
80 | }) | ||
81 | } | ||
82 | }) | ||
83 | } | ||
68 | } | 84 | } |
69 | 85 | ||
70 | async function unregister () { | 86 | async function unregister () { |
diff --git a/server/tests/plugins/external-auth.ts b/server/tests/plugins/external-auth.ts index 583100671..042681dbe 100644 --- a/server/tests/plugins/external-auth.ts +++ b/server/tests/plugins/external-auth.ts | |||
@@ -58,7 +58,14 @@ describe('Test external auth plugins', function () { | |||
58 | before(async function () { | 58 | before(async function () { |
59 | this.timeout(30000) | 59 | this.timeout(30000) |
60 | 60 | ||
61 | server = await createSingleServer(1) | 61 | server = await createSingleServer(1, { |
62 | rates_limit: { | ||
63 | login: { | ||
64 | max: 30 | ||
65 | } | ||
66 | } | ||
67 | }) | ||
68 | |||
62 | await setAccessTokensToServers([ server ]) | 69 | await setAccessTokensToServers([ server ]) |
63 | 70 | ||
64 | for (const suffix of [ 'one', 'two', 'three' ]) { | 71 | for (const suffix of [ 'one', 'two', 'three' ]) { |
@@ -70,7 +77,7 @@ describe('Test external auth plugins', function () { | |||
70 | const config = await server.config.getConfig() | 77 | const config = await server.config.getConfig() |
71 | 78 | ||
72 | const auths = config.plugin.registeredExternalAuths | 79 | const auths = config.plugin.registeredExternalAuths |
73 | expect(auths).to.have.lengthOf(8) | 80 | expect(auths).to.have.lengthOf(9) |
74 | 81 | ||
75 | const auth2 = auths.find((a) => a.authName === 'external-auth-2') | 82 | const auth2 = auths.find((a) => a.authName === 'external-auth-2') |
76 | expect(auth2).to.exist | 83 | expect(auth2).to.exist |
@@ -275,7 +282,7 @@ describe('Test external auth plugins', function () { | |||
275 | const config = await server.config.getConfig() | 282 | const config = await server.config.getConfig() |
276 | 283 | ||
277 | const auths = config.plugin.registeredExternalAuths | 284 | const auths = config.plugin.registeredExternalAuths |
278 | expect(auths).to.have.lengthOf(7) | 285 | expect(auths).to.have.lengthOf(8) |
279 | 286 | ||
280 | const auth1 = auths.find(a => a.authName === 'external-auth-2') | 287 | const auth1 = auths.find(a => a.authName === 'external-auth-2') |
281 | expect(auth1).to.not.exist | 288 | expect(auth1).to.not.exist |
@@ -318,7 +325,7 @@ describe('Test external auth plugins', function () { | |||
318 | }) | 325 | }) |
319 | }) | 326 | }) |
320 | 327 | ||
321 | it('Should not login an existing user', async function () { | 328 | it('Should not login an existing user email', async function () { |
322 | await server.users.create({ username: 'existing_user', password: 'super_password' }) | 329 | await server.users.create({ username: 'existing_user', password: 'super_password' }) |
323 | 330 | ||
324 | await loginExternal({ | 331 | await loginExternal({ |
@@ -330,11 +337,33 @@ describe('Test external auth plugins', function () { | |||
330 | }) | 337 | }) |
331 | }) | 338 | }) |
332 | 339 | ||
340 | it('Should be able to login an existing user username and channel', async function () { | ||
341 | await server.users.create({ username: 'existing_user2' }) | ||
342 | await server.users.create({ username: 'existing_user2-1_channel' }) | ||
343 | |||
344 | // Test twice to ensure we don't generate a username on every login | ||
345 | for (let i = 0; i < 2; i++) { | ||
346 | const res = await loginExternal({ | ||
347 | server, | ||
348 | npmName: 'test-external-auth-two', | ||
349 | authName: 'external-auth-7', | ||
350 | username: 'existing_user2' | ||
351 | }) | ||
352 | |||
353 | const token = res.access_token | ||
354 | |||
355 | const myInfo = await server.users.getMyInfo({ token }) | ||
356 | expect(myInfo.username).to.equal('existing_user2-1') | ||
357 | |||
358 | expect(myInfo.videoChannels[0].name).to.equal('existing_user2-1_channel-1') | ||
359 | } | ||
360 | }) | ||
361 | |||
333 | it('Should display the correct configuration', async function () { | 362 | it('Should display the correct configuration', async function () { |
334 | const config = await server.config.getConfig() | 363 | const config = await server.config.getConfig() |
335 | 364 | ||
336 | const auths = config.plugin.registeredExternalAuths | 365 | const auths = config.plugin.registeredExternalAuths |
337 | expect(auths).to.have.lengthOf(6) | 366 | expect(auths).to.have.lengthOf(7) |
338 | 367 | ||
339 | const auth2 = auths.find((a) => a.authName === 'external-auth-2') | 368 | const auth2 = auths.find((a) => a.authName === 'external-auth-2') |
340 | expect(auth2).to.not.exist | 369 | expect(auth2).to.not.exist |