From ebd0019459ed22e79aa30e075227fce3fd7eda0c Mon Sep 17 00:00:00 2001 From: Mykola Morhun Date: Wed, 2 Aug 2017 15:23:31 +0300 Subject: [PATCH] Che theme for Keycloak (#5859) Add draft of Che theme for keycloak --- .../compose/templates/docker-compose.yml.erb | 1 + .../files/che/login/login-reset-password.ftl | 34 +++ .../files/che/login/login-update-password.ftl | 40 +++ .../keycloak/files/che/login/login.ftl | 76 ++++++ .../modules/keycloak/files/che/login/logo.ftl | 4 + .../che/login/messages/messages_en.properties | 6 + .../keycloak/files/che/login/register.ftl | 76 ++++++ .../files/che/login/resources/css/styles.css | 248 ++++++++++++++++++ .../che/login/resources/img/che-logo.svg | 22 ++ .../files/che/login/resources/img/favicon.ico | Bin 0 -> 20502 bytes .../resources/img/logo-github-hover@3x.png | Bin 0 -> 4011 bytes .../login/resources/img/logo-github@3x.png | Bin 0 -> 3961 bytes .../keycloak/files/che/login/theme.properties | 2 + .../init/modules/keycloak/manifests/init.pp | 6 + .../keycloak/templates/che-realm.json.erb | 7 +- 15 files changed, 519 insertions(+), 3 deletions(-) create mode 100644 dockerfiles/init/modules/keycloak/files/che/login/login-reset-password.ftl create mode 100644 dockerfiles/init/modules/keycloak/files/che/login/login-update-password.ftl create mode 100644 dockerfiles/init/modules/keycloak/files/che/login/login.ftl create mode 100644 dockerfiles/init/modules/keycloak/files/che/login/logo.ftl create mode 100644 dockerfiles/init/modules/keycloak/files/che/login/messages/messages_en.properties create mode 100644 dockerfiles/init/modules/keycloak/files/che/login/register.ftl create mode 100644 dockerfiles/init/modules/keycloak/files/che/login/resources/css/styles.css create mode 100644 dockerfiles/init/modules/keycloak/files/che/login/resources/img/che-logo.svg create mode 100644 dockerfiles/init/modules/keycloak/files/che/login/resources/img/favicon.ico create mode 100644 dockerfiles/init/modules/keycloak/files/che/login/resources/img/logo-github-hover@3x.png create mode 100644 dockerfiles/init/modules/keycloak/files/che/login/resources/img/logo-github@3x.png create mode 100644 dockerfiles/init/modules/keycloak/files/che/login/theme.properties diff --git a/dockerfiles/init/modules/compose/templates/docker-compose.yml.erb b/dockerfiles/init/modules/compose/templates/docker-compose.yml.erb index 28f1b8523d..496d773c3c 100644 --- a/dockerfiles/init/modules/compose/templates/docker-compose.yml.erb +++ b/dockerfiles/init/modules/compose/templates/docker-compose.yml.erb @@ -146,6 +146,7 @@ services: links: - postgres:postgres volumes: + - '<%= scope.lookupvar('che::che_instance') -%>/config/keycloak/che:/opt/jboss/keycloak/themes/che' - '<%= scope.lookupvar('che::che_instance') -%>/config/keycloak/:/export' - '<%= scope.lookupvar('che::che_instance') -%>/data/keycloak:/opt/jboss/keycloak/standalone/data' - '<%= scope.lookupvar('che::che_instance') -%>/logs/keycloak:/opt/jboss/keycloak/standalone/log' diff --git a/dockerfiles/init/modules/keycloak/files/che/login/login-reset-password.ftl b/dockerfiles/init/modules/keycloak/files/che/login/login-reset-password.ftl new file mode 100644 index 0000000000..6009c296b7 --- /dev/null +++ b/dockerfiles/init/modules/keycloak/files/che/login/login-reset-password.ftl @@ -0,0 +1,34 @@ +<#import "template.ftl" as layout> +<@layout.registrationLayout displayInfo=true; section> + <#if section = "title"> + ${msg("emailForgotTitle")} + <#elseif section = "header"> + ${msg("emailForgotTitle")} + <#elseif section = "form"> + <#include "logo.ftl"> + +
+
+
${msg("passwordRecover")}
+ +
+ ${msg("usernameOrEmail")}<#else>${msg("email")}"/> +
+
+ +
+ + +
+ +
+
+
+ <#elseif section = "info" > + ${msg("emailInstruction")} + + diff --git a/dockerfiles/init/modules/keycloak/files/che/login/login-update-password.ftl b/dockerfiles/init/modules/keycloak/files/che/login/login-update-password.ftl new file mode 100644 index 0000000000..37830eaf01 --- /dev/null +++ b/dockerfiles/init/modules/keycloak/files/che/login/login-update-password.ftl @@ -0,0 +1,40 @@ +<#import "template.ftl" as layout> +<@layout.registrationLayout displayInfo=true; section> + <#if section = "title"> + ${msg("updatePasswordTitle")} + <#elseif section = "header"> + ${msg("updatePasswordTitle")} + <#elseif section = "form"> + <#include "logo.ftl"> + +
+ + + +
Setup your password.
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+ + diff --git a/dockerfiles/init/modules/keycloak/files/che/login/login.ftl b/dockerfiles/init/modules/keycloak/files/che/login/login.ftl new file mode 100644 index 0000000000..30f6e8c1f8 --- /dev/null +++ b/dockerfiles/init/modules/keycloak/files/che/login/login.ftl @@ -0,0 +1,76 @@ +<#import "template.ftl" as layout> +<@layout.registrationLayout displayInfo=social.displayInfo; section> + <#if section = "title"> + ${msg("loginTitle",(realm.displayName!''))} + <#elseif section = "header"> + ${msg("loginTitleHtml",(realm.displayNameHtml!''))} + <#elseif section = "form"> + <#include "logo.ftl"> + + <#if realm.password> +
+
+
${msg("passwordLogin")}
+
+ <#if usernameEditDisabled??> + + <#else> + ${msg("usernameOrEmail")}<#else>${msg("email")}" /> + +
+
+ +
+
+ +
+
+ +
+
+ <#if realm.rememberMe && !usernameEditDisabled??> +
+ +
+ +
+ <#if realm.resetPasswordAllowed> + ${msg("doForgotPassword")} + +
+
+ +
+
+ +
+
+
+
+ + <#elseif section = "info" > + <#if realm.password && social.providers??> +
${msg("oauthLogin")}
+
+ +
+ + + <#if realm.password && realm.registrationAllowed && !usernameEditDisabled??> +
+ ${msg("noAccount")} ${msg("doRegister")} +
+ + + + diff --git a/dockerfiles/init/modules/keycloak/files/che/login/logo.ftl b/dockerfiles/init/modules/keycloak/files/che/login/logo.ftl new file mode 100644 index 0000000000..bf06c8ec3a --- /dev/null +++ b/dockerfiles/init/modules/keycloak/files/che/login/logo.ftl @@ -0,0 +1,4 @@ +
+ + ${msg("product")} +
diff --git a/dockerfiles/init/modules/keycloak/files/che/login/messages/messages_en.properties b/dockerfiles/init/modules/keycloak/files/che/login/messages/messages_en.properties new file mode 100644 index 0000000000..72d947c609 --- /dev/null +++ b/dockerfiles/init/modules/keycloak/files/che/login/messages/messages_en.properties @@ -0,0 +1,6 @@ +product=Eclipse Che + +passwordLogin=Login with password +oauthLogin=Login with OAuth +formRegister=Create an account with a form +passwordRecover=Forgot your password?
Enter your email below. diff --git a/dockerfiles/init/modules/keycloak/files/che/login/register.ftl b/dockerfiles/init/modules/keycloak/files/che/login/register.ftl new file mode 100644 index 0000000000..94690d7772 --- /dev/null +++ b/dockerfiles/init/modules/keycloak/files/che/login/register.ftl @@ -0,0 +1,76 @@ +<#import "template.ftl" as layout> +<@layout.registrationLayout; section> + <#if section = "title"> + ${msg("registerWithTitle",(realm.displayName!''))} + <#elseif section = "header"> + ${msg("registerWithTitleHtml",(realm.displayNameHtml!''))} + <#elseif section = "form"> + <#include "logo.ftl"> + +
+ + + +
${msg("formRegister")}
+ + <#if !realm.registrationEmailAsUsername> +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + <#if passwordRequired> +
+
+ +
+
+ +
+
+ +
+
+ + + <#if recaptchaRequired??> +
+
+
+
+
+ + +
+ + +
+ +
+
+
+ + diff --git a/dockerfiles/init/modules/keycloak/files/che/login/resources/css/styles.css b/dockerfiles/init/modules/keycloak/files/che/login/resources/css/styles.css new file mode 100644 index 0000000000..a169bada10 --- /dev/null +++ b/dockerfiles/init/modules/keycloak/files/che/login/resources/css/styles.css @@ -0,0 +1,248 @@ + +body { + background-color: #1b2b57; + color: #4a90e2; + font-family: 'Open Sans'; + font-size: 14px; +} + +a { + color: #fff; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +div#kc-content { + position: absolute; + top: 20%; + left: 50%; + width: 400px; + margin-left: -225px; +} + +div#kc-form { + float: left; + width: 400px; +} + +div#kc-form label { + display: block; + font-family: 'Open Sans'; + font-size: 24px; + margin-bottom: 10px; +} + +div#info-area { + position: fixed; + bottom: 0; + left: 0; + margin-top: 40px; + background-color: rgba(0, 0, 0, 0.4); + padding: 20px; + width: 100%; +} + +div#info-area p { + margin-right: 30px; + display: inline; + text-shadow: none; +} + +input[type=text], input[type=password] { + width: 375px; + height: 46px; + margin: 0 0 10px 0; + border-radius: 5px; + padding-left: 21px; + color: #fff; + background: #2d407d; + font-size: 16px; + font-size: 18px; + vertical-align: middle; + border: none; +} + +input[type=text]:focus, input[type=password]:focus { + background: #3f55ae; + outline: none; +} + +input[type=submit] { + border: none; + width: 180px; + height: 40px; + border-radius: 5px; + font-size: 16px; + font-weight: bold; + color: #fff; + background: #44a73b; + cursor: pointer; + + padding: 10px; + margin-top: 20px; + margin-right: 10px; + margin-bottom: 25px; +} + +input[type=submit]:hover { + background-color: #398842; +} + +div#kc-form-options div { + display: inline-block; + margin-right: 20px; + font-size: 12px; +} + +div#kc-form-options a { + font-size: 14px; + font-family: 'Open Sans'; +} + +div#kc-form-options div label { + font-size: 14px; +} + +div#kc-feedback { + box-shadow: 0px 0px 6px rgba(0,0,0,0.5); + position: fixed; + top: 0; + left: 0; + width: 100%; + text-align: center; +} + +.kc-feedback-text { + color: #fff; + font-size: 18px; + text-align: center; + display: block; + margin-bottom: 25px; + padding: 15px; +} + +div#kc-feedback-wrapper { + padding: 1em; +} + +div.feedback-success { + background-color: rgba(155,155,255,0.1); +} + +div.feedback-warning { + background-color: rgba(255,175,0,0.1); +} + +div.feedback-error { + background-color: rgba(255,0,0,0.1); +} + +.alert { + border-radius: 5px; +} + +.alert-success { + background-color: #44a73b; +} + +.alert-warning { + background-color: #8c9837; +} + +.alert-error { + background-color: #d7342d; +} + + +div#kc-error-message { + color: #fff; + background-color: #d7342d; + border-radius: 5px; + text-align: center; + display: inline-block; + font-size: 16px; + padding-left: 15px; + padding-right: 15px; +} + +div#kc-header { + display: none; +} + +div#kc-registration { + font-size: 20px; + margin-bottom: 20px; +} + +div#social-login { + border-left: 1px solid rgba(255, 255, 255, 0.2); + float: right; + width: 150px; + padding: 20px 0 200px 40px; +} + +div.social-login span { + display: none; +} + +div#kc-social-providers ul { + list-style: none; + margin: 0; + padding: 0; +} + +div#kc-social-providers ul li { + margin-bottom: 20px; +} + +div#kc-social-providers ul li span { + display: inline; + width: 100px; +} + +a.zocial { + border: none; + padding-top: 0.2em; + padding-bottom: 0.2em; +} + +#zocial-image-github { + width: 48px; + height: 48px; + background-size: cover; + background-image: url("../img/logo-github@3x.png"); +} + +#zocial-image-github:hover { + background-image: url("../img/logo-github-hover@3x.png"); +} + +#logo-banner { + color: #fff; + font-weight: bold; + font-size: 36px; + display: inline-block; + margin-bottom: 25px; +} + +#logo-banner #che-logo { + width: 64px; + height: 64px; + vertical-align: middle; +} + +#logo-banner span { + display: inline-block; + vertical-align: middle; + margin-left: 10px; +} + +.kc-form-title { + font-family: 'Open Sans'; + font-size: 20px; + margin-bottom: 10px; +} + diff --git a/dockerfiles/init/modules/keycloak/files/che/login/resources/img/che-logo.svg b/dockerfiles/init/modules/keycloak/files/che/login/resources/img/che-logo.svg new file mode 100644 index 0000000000..d37c67c687 --- /dev/null +++ b/dockerfiles/init/modules/keycloak/files/che/login/resources/img/che-logo.svg @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/dockerfiles/init/modules/keycloak/files/che/login/resources/img/favicon.ico b/dockerfiles/init/modules/keycloak/files/che/login/resources/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..903abcb13f0ac160bcc56706ddf89b6ed56aab30 GIT binary patch literal 20502 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 literal 0 HcmV?d00001 diff --git a/dockerfiles/init/modules/keycloak/files/che/login/resources/img/logo-github@3x.png b/dockerfiles/init/modules/keycloak/files/che/login/resources/img/logo-github@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..855da76d9920577211059260b8b1a472a73b4fd9 GIT binary patch literal 3961 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 literal 0 HcmV?d00001 diff --git a/dockerfiles/init/modules/keycloak/files/che/login/theme.properties b/dockerfiles/init/modules/keycloak/files/che/login/theme.properties new file mode 100644 index 0000000000..298aa65ac2 --- /dev/null +++ b/dockerfiles/init/modules/keycloak/files/che/login/theme.properties @@ -0,0 +1,2 @@ +parent=base +styles=css/styles.css diff --git a/dockerfiles/init/modules/keycloak/manifests/init.pp b/dockerfiles/init/modules/keycloak/manifests/init.pp index b809287eef..7d1350cae4 100644 --- a/dockerfiles/init/modules/keycloak/manifests/init.pp +++ b/dockerfiles/init/modules/keycloak/manifests/init.pp @@ -22,5 +22,11 @@ class keycloak { ensure => "present", content => template("keycloak/master-users-0.json.erb"), mode => "644", + } -> + file { 'keycloak theme custom login page': + path => '/opt/che/config/keycloak/che', + ensure => "present", + source => 'puppet:///modules/keycloak/che', + recurse => true, } } diff --git a/dockerfiles/init/modules/keycloak/templates/che-realm.json.erb b/dockerfiles/init/modules/keycloak/templates/che-realm.json.erb index 252e67b56f..4a246f54a8 100644 --- a/dockerfiles/init/modules/keycloak/templates/che-realm.json.erb +++ b/dockerfiles/init/modules/keycloak/templates/che-realm.json.erb @@ -13,13 +13,13 @@ "accessCodeLifespanLogin" : 1800, "enabled" : true, "sslRequired" : "external", - "registrationAllowed" : false, + "registrationAllowed" : true, "registrationEmailAsUsername" : false, "rememberMe" : false, "verifyEmail" : false, "loginWithEmailAllowed" : true, "duplicateEmailsAllowed" : false, - "resetPasswordAllowed" : false, + "resetPasswordAllowed" : true, "editUsernameAllowed" : false, "bruteForceProtected" : false, "maxFailureWaitSeconds" : 900, @@ -302,6 +302,7 @@ "xXSSProtection" : "1; mode=block", "contentSecurityPolicy" : "frame-src 'self'" }, + "loginTheme" : "che", "smtpServer" : { }, "eventsEnabled" : false, "eventsListeners" : [ "jboss-logging" ], @@ -735,5 +736,5 @@ "minimumQuickLoginWaitSeconds" : "60", "waitIncrementSeconds" : "60" }, - "keycloakVersion" : "3.1.0.Final" + "keycloakVersion" : "3.2.1.Final" }