Merge branch 'dev/sso-login-redirect' of github.com:Murena-SAS/cryptpad into sso-login-redirect

This commit is contained in:
yflory 2025-10-02 10:45:29 +02:00
commit 456563d28a
4 changed files with 17 additions and 1 deletions

View File

@ -12,6 +12,8 @@ module.exports = {
cpPassword: false,
// You can also force your SSO users to add a CryptPad password
forceCpPassword: false,
// Force redirect to first SSO provider
forceRedirect: true,
// List of SSO providers
list: [
/*

View File

@ -14,7 +14,9 @@ define([
var ssoEnabled = (Config.sso && Config.sso.list && Config.sso.list.length) ?'': '.cp-hidden';
var ssoEnforced = (Config.sso && Config.sso.force) ? '.cp-hidden' : '';
if (Config.sso && Config.sso.list && Config.sso.forceRedirect === 1) {
return;
}
return [h('div#cp-main', [
Pages.infopageTopbar(),
h('div.container.cp-container', [

View File

@ -602,6 +602,7 @@ var serveConfig = makeRouteCache(function () {
Env.sso.list.map(function (obj) { return obj.name; }) || [];
const ssoCfg = (SSOUtils && ssoList.length) ? {
force: (Env.sso && Env.sso.enforced && 1) || 0,
forceRedirect: (Env.sso && Env.sso.forceRedirect && 1) || 0,
password: (Env.sso && Env.sso.cpPassword && (Env.sso.forceCpPassword ? 2 : 1)) || 0,
list: ssoList
} : false;

View File

@ -31,6 +31,17 @@ define([
// Config.sso.password => cp password required or forbidden
// Config.sso.list => list of configured identity providers
var $sso = $('div.cp-login-sso');
// Auto-redirect if only forceRedirect set to true
if (Config.sso && Config.sso.list && Config.sso.forceRedirect === 1) {
Login.ssoAuth(Config.sso.list[0], function (err, data) {
if (data && data.url) {
window.location.href = data.url;
} else {
console.error("SSO auto-redirect failed:", err || "no URL");
}
});
return;
}
var list = Config.sso.list.map(function (name) {
var b = h('button.btn.btn-secondary', name);
var $b = $(b).click(function () {