diff --git a/src/oidc.js b/src/oidc.js index 41b1ddfdb..8fe8d1484 100644 --- a/src/oidc.js +++ b/src/oidc.js @@ -21,6 +21,7 @@ const assert = require('assert'), BoxError = require('./boxerror.js'), database = require('./database.js'), debug = require('debug')('box:oidc'), + ejs = require('ejs'), fs = require('fs'), middleware = require('./middleware'), path = require('path'), @@ -492,44 +493,24 @@ async function claims(userId, use, scope) { return claims; } +// @param form - form source (id="op.logoutForm") to be embedded in the page and submitted by the End-User async function logoutSource(ctx, form) { - // @param ctx - koa request context - // @param form - form source (id="op.logoutForm") to be embedded in the page and submitted by - // the End-User - ctx.body = ` - - Logout Request - - - -
-

Cloudron Do you want to sign-out from ${ctx.host}?

- ${form} - - -
- - `; + const data = { + host: settings.dashboardFqdn(), + form + }; + + ctx.body = ejs.render(fs.readFileSync(path.join(__dirname, 'oidc_templates/logout.ejs'), 'utf8'), data, {}); } async function postLogoutSuccessSource(ctx) { - // @param ctx - koa request context - const { - clientId, clientName, clientUri, initiateLoginUri, logoUri, policyUri, tosUri, - } = ctx.oidc.client || {}; // client is defined if the user chose to stay logged in with the OP - const display = clientName || clientId; - ctx.body = ` - - Sign-out Success - - - -
-

Cloudron Sign-out Success

-

Your sign-out ${display ? `with ${display}` : ''} was successful.

-
- - `; + const { clientId, clientName, clientUri, initiateLoginUri, logoUri, policyUri, tosUri } = ctx.oidc.client || {}; // client is defined if the user chose to stay logged in with the OP + const display = clientName || clientId; + const data = { + dashboardOrigin: settings.dashboardOrigin() + }; + + ctx.body = ejs.render(fs.readFileSync(path.join(__dirname, 'oidc_templates/post_logout.ejs'), 'utf8'), data, {}); } async function getProvider(routePrefix) { diff --git a/src/oidc_templates/interaction.ejs b/src/oidc_templates/interaction.ejs index a71fb5294..e28d1d777 100644 --- a/src/oidc_templates/interaction.ejs +++ b/src/oidc_templates/interaction.ejs @@ -4,7 +4,7 @@ - Cloudron OpenID Connect Login + Cloudron Login @@ -25,7 +25,7 @@

-

Cloudron OIDC Login

+

Cloudron Login


diff --git a/src/oidc_templates/login.ejs b/src/oidc_templates/login.ejs index 95c6e189f..311a146b8 100644 --- a/src/oidc_templates/login.ejs +++ b/src/oidc_templates/login.ejs @@ -4,7 +4,7 @@ - Cloudron OpenID Connect Login + Cloudron Login @@ -26,7 +26,7 @@

-

Cloudron OIDC Login

+

Cloudron Login


diff --git a/src/oidc_templates/logout.ejs b/src/oidc_templates/logout.ejs new file mode 100644 index 000000000..8ff7e07d8 --- /dev/null +++ b/src/oidc_templates/logout.ejs @@ -0,0 +1,44 @@ + + + + + + + Cloudron Logout + + + + + + + + + + + + + +
+
+
+
+
+ +
+

Do you want to also log out from <%= host %>?

+
+
+
+
+
+ <%- form %> + + +
+
+
+
+
+ + + diff --git a/src/oidc_templates/post_logout.ejs b/src/oidc_templates/post_logout.ejs new file mode 100644 index 000000000..9e0d5c060 --- /dev/null +++ b/src/oidc_templates/post_logout.ejs @@ -0,0 +1,42 @@ + + + + + + + Cloudron Logout + + + + + + + + + + + + + +
+
+
+
+
+ +
+

Succesfully logged out

+
+
+
+
+ +
+
+
+
+ + +