diff --git a/UI/MainUI/English.lproj/Localizable.strings b/UI/MainUI/English.lproj/Localizable.strings index a23fb2ba0..ca44c6cf2 100644 --- a/UI/MainUI/English.lproj/Localizable.strings +++ b/UI/MainUI/English.lproj/Localizable.strings @@ -8,6 +8,7 @@ "Connect" = "Connect"; "Wrong username or password." = "Wrong username or password."; +"cookiesNotEnabled" = "You cannot login because your browser's cookies are disabled. Please enable cookies in your browser's settings and try again."; "browserNotCompatible" = "We've detected that your browser version is currently not supported on this site. Our recommendation is to use Firefox. Click on the link bellow to download the most current version of this browser."; "alternativeBrowsers" = "Alternatively, you can also use the following compatible browsers"; diff --git a/UI/MainUI/French.lproj/Localizable.strings b/UI/MainUI/French.lproj/Localizable.strings index 1af6e3eb1..29a59a715 100644 --- a/UI/MainUI/French.lproj/Localizable.strings +++ b/UI/MainUI/French.lproj/Localizable.strings @@ -8,6 +8,7 @@ "Connect" = "Connexion"; "Wrong username or password." = "Mauvais nom d'utilisateur ou mot de passe."; +"cookiesNotEnabled" = "Vous ne pouvez vous authentifier car les témoins (cookies) de votre navigateur Web sont désactivés. Activez les témoins dans votre navigateur Web et essayez de nouveau."; "browserNotCompatible" = "La version de votre navigateur Web n'est présentement pas supportée par ce site. Nous recommandons d'utiliser Firefox. Vous trouverez un lien vers la plus récente version de ce navigateur ci-dessous:"; "alternativeBrowsers" = "Comme alternative, vous pouvez aussi utiliser les navigateurs suivants:"; diff --git a/UI/Templates/MainUI/SOGoRootPage.wox b/UI/Templates/MainUI/SOGoRootPage.wox index 8e281e830..d3fd66106 100644 --- a/UI/Templates/MainUI/SOGoRootPage.wox +++ b/UI/Templates/MainUI/SOGoRootPage.wox @@ -15,7 +15,8 @@ type="text/javascript">var loginSuffix = '';

-

+ +
diff --git a/UI/WebServerResources/SOGoRootPage.css b/UI/WebServerResources/SOGoRootPage.css index 1228fc9b8..6d40b6e75 100644 --- a/UI/WebServerResources/SOGoRootPage.css +++ b/UI/WebServerResources/SOGoRootPage.css @@ -48,9 +48,9 @@ DIV#loginButton IMG#progressIndicator margin-top: 5px; margin-left: 5px; } +#noCookiesErrorMessage, #loginErrorMessage -{ display: none; - color: #f00; +{ color: #f00; text-align: center; } P.browser diff --git a/UI/WebServerResources/SOGoRootPage.js b/UI/WebServerResources/SOGoRootPage.js index 3cb8156e5..569adb285 100644 --- a/UI/WebServerResources/SOGoRootPage.js +++ b/UI/WebServerResources/SOGoRootPage.js @@ -40,41 +40,57 @@ function onLoginClick(event) { } function onLoginCallback(http) { - if (http.readyState == 4) { - if (isHttpStatus204(http.status)) { - var userName = $("userName").value; - if (typeof(loginSuffix) != "undefined" - && loginSuffix.length > 0 - && !userName.endsWith(loginSuffix)) - userName += loginSuffix; - var address = "" + window.location.href; - var baseAddress = ApplicationBaseURL + encodeURI(userName); - var altBaseAddress; - if (baseAddress[0] == "/") { - var parts = address.split("/"); - var hostpart = parts[2]; - var protocol = parts[0]; - baseAddress = protocol + "//" + hostpart + baseAddress; - } - var altBaseAddress; - var parts = baseAddress.split("/"); - parts.splice(3, 0); - altBaseAddress = parts.join("/"); + if (http.readyState == 4) { + if (isHttpStatus204(http.status)) { - var newAddress; - if ((address.startsWith(baseAddress) - || address.startsWith(altBaseAddress)) - && !address.endsWith("/logoff")) - newAddress = address; - else - newAddress = baseAddress; - window.location.href = newAddress; - } - else { - var message = $("loginErrorMessage"); - message.setStyle({ display: "block" }); - } + // Make sure browser's cookies are enabled + var cookieExists = 0; + var ca = document.cookie.split(';'); + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') c = c.substring(1, c.length); + if (c.indexOf("0xHIGHFLYxSOGo-0.9=") == 0) { + cookieExists = 1; + break; + } + } + if (cookieExists === 0) { + $("noCookiesErrorMessage").show(); + return false; + } + + // Redirect to proper page + var userName = $("userName").value; + if (typeof(loginSuffix) != "undefined" + && loginSuffix.length > 0 + && !userName.endsWith(loginSuffix)) + userName += loginSuffix; + var address = "" + window.location.href; + var baseAddress = ApplicationBaseURL + encodeURI(userName); + var altBaseAddress; + if (baseAddress[0] == "/") { + var parts = address.split("/"); + var hostpart = parts[2]; + var protocol = parts[0]; + baseAddress = protocol + "//" + hostpart + baseAddress; + } + var altBaseAddress; + var parts = baseAddress.split("/"); + parts.splice(3, 0); + altBaseAddress = parts.join("/"); + + var newAddress; + if ((address.startsWith(baseAddress) + || address.startsWith(altBaseAddress)) + && !address.endsWith("/logoff")) + newAddress = address; + else + newAddress = baseAddress; + window.location.href = newAddress; } + else + $("loginErrorMessage").show(); + } } FastInit.addOnLoad(initLogin);