diff options
-rw-r--r-- | server/tests/cli/peertube.ts | 12 | ||||
-rw-r--r-- | server/tools/peertube-auth.ts | 11 |
2 files changed, 23 insertions, 0 deletions
diff --git a/server/tests/cli/peertube.ts b/server/tests/cli/peertube.ts index 348438533..fcf7e2e2e 100644 --- a/server/tests/cli/peertube.ts +++ b/server/tests/cli/peertube.ts | |||
@@ -66,6 +66,18 @@ describe('Test CLI wrapper', function () { | |||
66 | await execCLI(`${env} ${cmd} auth add -u ${server.url} -U user_1 -p super_password`) | 66 | await execCLI(`${env} ${cmd} auth add -u ${server.url} -U user_1 -p super_password`) |
67 | }) | 67 | }) |
68 | 68 | ||
69 | it('Should not fail to add a user if there is a slash at the end of the instance URL', async function () { | ||
70 | this.timeout(60000) | ||
71 | |||
72 | const env = getEnvCli(server) | ||
73 | let fullServerURL | ||
74 | fullServerURL = server.url + '/' | ||
75 | await execCLI(`${env} ${cmd} auth add -u ${fullServerURL} -U user_1 -p super_password`) | ||
76 | |||
77 | fullServerURL = server.url + '/asdfasdf' | ||
78 | await execCLI(`${env} ${cmd} auth add -u ${fullServerURL} -U user_1 -p super_password`) | ||
79 | }) | ||
80 | |||
69 | it('Should default to this user', async function () { | 81 | it('Should default to this user', async function () { |
70 | this.timeout(60000) | 82 | this.timeout(60000) |
71 | 83 | ||
diff --git a/server/tools/peertube-auth.ts b/server/tools/peertube-auth.ts index 1a4fae4ce..7673b92cd 100644 --- a/server/tools/peertube-auth.ts +++ b/server/tools/peertube-auth.ts | |||
@@ -80,8 +80,19 @@ program | |||
80 | } | 80 | } |
81 | } | 81 | } |
82 | }, async (_, result) => { | 82 | }, async (_, result) => { |
83 | const stripExtraneousFromPeerTubeUrl = function (url: string) { | ||
84 | // Get everything before the 3rd /. | ||
85 | const urlLength: number = url.includes('/', 8) ? url.indexOf('/', 8) : url.length | ||
86 | |||
87 | return url.substr(0, urlLength) | ||
88 | } | ||
89 | |||
83 | // Check credentials | 90 | // Check credentials |
84 | try { | 91 | try { |
92 | // Strip out everything after the domain:port. | ||
93 | // @see https://github.com/Chocobozzz/PeerTube/issues/3520 | ||
94 | result.url = stripExtraneousFromPeerTubeUrl(result.url) | ||
95 | |||
85 | await getAccessToken(result.url, result.username, result.password) | 96 | await getAccessToken(result.url, result.username, result.password) |
86 | } catch (err) { | 97 | } catch (err) { |
87 | console.error(err.message) | 98 | console.error(err.message) |