diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 6d3188a88..cb037ffff 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.2.10", + "version": "3.2.11", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/handler/user.ts b/packages/hydrooj/src/handler/user.ts index a3f8128b9..4b4e4a369 100644 --- a/packages/hydrooj/src/handler/user.ts +++ b/packages/hydrooj/src/handler/user.ts @@ -125,9 +125,10 @@ class UserLoginHandler extends Handler { this.session.uid = udoc._id; this.session.scope = PERM.PERM_ALL.toString(); this.session.save = rememberme; - this.response.redirect = redirect || ((this.request.referer || '/login').endsWith('/login') - ? this.url('homepage') - : this.request.referer); + this.response.redirect = (redirect ? decodeURIComponent(redirect) : '') + || ((this.request.referer || '/login').endsWith('/login') + ? this.url('homepage') + : this.request.referer); } }