From 6f6bd439b5b2cbdf15295fcfa635001f88f54239 Mon Sep 17 00:00:00 2001 From: Eric Franz Date: Fri, 6 Oct 2017 14:23:23 -0400 Subject: [PATCH 01/15] separate osc/awesim into theme overrides --- .../login/messages/messages_en.properties | 3 +++ .../awesim/login}/resources/img/favicon.ico | Bin .../awesim/login/resources/img/logo.png | Bin .../awesim/login/theme.properties | 3 +++ .../osc/login/messages/messages_en.properties | 3 +++ .../osc/login/resources/img/favicon.ico | Bin 0 -> 1150 bytes .../osc/login/resources/img/logo.png | Bin example_overrides/osc/login/theme.properties | 3 +++ login/login.ftl | 22 +++++++----------- login/messages/messages_en.properties | 6 ++--- login/resources/img/.keep | 0 login/theme.properties | 5 ++++ 12 files changed, 29 insertions(+), 16 deletions(-) create mode 100644 example_overrides/awesim/login/messages/messages_en.properties rename {login => example_overrides/awesim/login}/resources/img/favicon.ico (100%) rename login/resources/img/awesim-logo.png => example_overrides/awesim/login/resources/img/logo.png (100%) create mode 100644 example_overrides/awesim/login/theme.properties create mode 100644 example_overrides/osc/login/messages/messages_en.properties create mode 100644 example_overrides/osc/login/resources/img/favicon.ico rename login/resources/img/osc-logo.png => example_overrides/osc/login/resources/img/logo.png (100%) create mode 100644 example_overrides/osc/login/theme.properties create mode 100644 login/resources/img/.keep diff --git a/example_overrides/awesim/login/messages/messages_en.properties b/example_overrides/awesim/login/messages/messages_en.properties new file mode 100644 index 0000000..e2bab65 --- /dev/null +++ b/example_overrides/awesim/login/messages/messages_en.properties @@ -0,0 +1,3 @@ +logintitle=Login to the Ohio Supercomputer Center +loginTitleHtml=

Log in with your OSC username and password.

+summary=The Ohio Super Computer Center (OSC) diff --git a/login/resources/img/favicon.ico b/example_overrides/awesim/login/resources/img/favicon.ico similarity index 100% rename from login/resources/img/favicon.ico rename to example_overrides/awesim/login/resources/img/favicon.ico diff --git a/login/resources/img/awesim-logo.png b/example_overrides/awesim/login/resources/img/logo.png similarity index 100% rename from login/resources/img/awesim-logo.png rename to example_overrides/awesim/login/resources/img/logo.png diff --git a/example_overrides/awesim/login/theme.properties b/example_overrides/awesim/login/theme.properties new file mode 100644 index 0000000..0ae578f --- /dev/null +++ b/example_overrides/awesim/login/theme.properties @@ -0,0 +1,3 @@ +parent=ood-keycloak + +oodFooterLinks="Forgot your password?==https://www.osc.edu/content/password_change_policy_faqs,,Need Help?==https://www.osc.edu/contact/supercomputing_support,,Register for a new account==https://www.awesim.org/en/signup" diff --git a/example_overrides/osc/login/messages/messages_en.properties b/example_overrides/osc/login/messages/messages_en.properties new file mode 100644 index 0000000..e2bab65 --- /dev/null +++ b/example_overrides/osc/login/messages/messages_en.properties @@ -0,0 +1,3 @@ +logintitle=Login to the Ohio Supercomputer Center +loginTitleHtml=

Log in with your OSC username and password.

+summary=The Ohio Super Computer Center (OSC) diff --git a/example_overrides/osc/login/resources/img/favicon.ico b/example_overrides/osc/login/resources/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..26a456a33446cfcb27ee8d01f7f320c497f2f97b GIT binary patch literal 1150 zcmZvcOH30{6oxO+$d;8`VPypoS5+%Z1Gq%k;3Fo+B2l!&1T-2-#VEl?r4)(p1>(ZE zFvb`V8^gkd8x>k!(?FrpYOz#`q%DHY@%%I1VKTMN>AiFA|D8FHn+lP~-+}_czlEY< zvk+T_5EeFeu}AasA_SkAKSU&qHXY3DxX~VU*H#5bY&*x2u-Yo+3w$^;YK{A~-`Opl zuBc~sk^fIwp`ZR|IAcv0v}U&cNN5PmzLGKGcan`)8AJN^7HhtSW1&G~jO)&bM`}+U z4bg?OVQQ+M(|PRS!m@pUJVe&*0Rn@5AP!=JzkL2HjebsXSR&s*lAb<_Q_t;~`i!3!&lbsXa#q!X>2yWh zH5E!g@)sQ&d}48(`X9&1d+WQ-PmQOk@dWeyelX0Aa8FjSm)6!YPxn0w)O#mJHI)h- zET5!%T`_v#U7(v+zv(*Ynf+zvoz3&A{x0Wzs6wGi+azI+7+h-(Uwt4q|Itq=Ro}<; zBmbX?bsBn;q?gYV=KTFUyKdxy{#|O?sQ=@K6|H}U`UhSuX*_Gea6X>kRHmft-~2G+ z;djdv|FNc;n)8(?p_ee8m;Qdt4=guVTx*T=$o}y?RPTYqKC9Pyj%U_ ${msg("loginTitle",(realm.displayName!''))} <#elseif section = "header"> -

+

${msg("loginTitleHtml",(realm.displayNameHtml!''))} <#elseif section = "form"> <#if realm.password> @@ -60,18 +60,14 @@
-

- Forgot your password? | - Need Help? - - <#if realm.name = "awesim"> - Register for a new account - <#else> - Register for a new account - - -

- + <#if properties.oodFooterLinks?has_content> + + + <#-- <#if realm.password> --> <#elseif section = "info" > <#if realm.password && realm.registrationAllowed && !usernameEditDisabled??>
diff --git a/login/messages/messages_en.properties b/login/messages/messages_en.properties index e2bab65..f7ecd3c 100644 --- a/login/messages/messages_en.properties +++ b/login/messages/messages_en.properties @@ -1,3 +1,3 @@ -logintitle=Login to the Ohio Supercomputer Center -loginTitleHtml=

Log in with your OSC username and password.

-summary=The Ohio Super Computer Center (OSC) +logintitle=Login to Open OnDemand +loginTitleHtml=

Log in with your HPC username and password.

+summary=Open OnDemand diff --git a/login/resources/img/.keep b/login/resources/img/.keep new file mode 100644 index 0000000..e69de29 diff --git a/login/theme.properties b/login/theme.properties index 895182c..41f1c2c 100644 --- a/login/theme.properties +++ b/login/theme.properties @@ -5,3 +5,8 @@ kcLogoLink=http://www.osc.edu kcContainerClass=container kcHeaderClass=container kcHeaderWrapperClass=page-header + +oodFooterLinksDelimiter=,, +oodFooterLinkDelimiter=== + +oodFooterLinks="" From b05f62aeecd6c6319824e8f10e5155f0aba68ccb Mon Sep 17 00:00:00 2001 From: Eric Franz Date: Fri, 6 Oct 2017 14:38:26 -0400 Subject: [PATCH 02/15] remove breaking 'empty' property --- login/theme.properties | 2 -- 1 file changed, 2 deletions(-) diff --git a/login/theme.properties b/login/theme.properties index 41f1c2c..041015d 100644 --- a/login/theme.properties +++ b/login/theme.properties @@ -8,5 +8,3 @@ kcHeaderWrapperClass=page-header oodFooterLinksDelimiter=,, oodFooterLinkDelimiter=== - -oodFooterLinks="" From 8ea20fe3191afd1995324a46b734b7fdf8c6d323 Mon Sep 17 00:00:00 2001 From: Eric Franz Date: Fri, 6 Oct 2017 14:45:50 -0400 Subject: [PATCH 03/15] remove logo link which is not used --- login/theme.properties | 1 - 1 file changed, 1 deletion(-) diff --git a/login/theme.properties b/login/theme.properties index 041015d..29741fb 100644 --- a/login/theme.properties +++ b/login/theme.properties @@ -1,7 +1,6 @@ parent=keycloak styles=css/bootstrap.min.css css/styles.css -kcLogoLink=http://www.osc.edu kcContainerClass=container kcHeaderClass=container kcHeaderWrapperClass=page-header From 690fd7872852746d742ac9fba2c13142c87fa62f Mon Sep 17 00:00:00 2001 From: Eric Franz Date: Fri, 6 Oct 2017 14:54:36 -0400 Subject: [PATCH 04/15] update readme --- README.md | 49 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 2dc7716..6d3a4e9 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,40 @@ -# OSC Keycloak theme +# OnDemand Keycloak theme -This basic theme works for both OSC and AweSim realms. It assumes the realm names will be osc and awesim. -The logo that appears above the menu is `${realm.name!}-logo.png` i.e. `awesim-logo.png` or `osc-logo.png`. +1. cd to keycloak/themes directory +2. git clone or wget and untar this repo, renaming the directory to `ood-keycloak` +3. create an override theme based on this (examples under `example_overrides`) or use base theme as it is + + +i.e. + + +``` +cd /opt/keycloak-3.3.0.CR2/themes +git clone https://github.com/OSC/keycloak-theme.git ood-keycloak +cp -r ood-keycloak/example_overrides/awesim awesim +cp -r ood-keycloak/example_overrides/osc osc + +# choose awesim or osc for appropriate realms +``` + +## Configuring + +Example theme override: + +``` +awesim/ +└── login + ├── messages + │   └── messages_en.properties + ├── resources + │   └── img + │   ├── favicon.ico + │   └── logo.png + └── theme.properties +``` + + +## Maintaining Install by cloning this repo to /opt/keycloak-3.0.0.Final/themes/osc. Then make the files read only by the user keycloak. @@ -15,13 +48,3 @@ $ Only login.ftl has been modified, so if the user may access another page that uses a different template, we might consider adding the logo to template.ftl instead. -### TODO - -- [ ] build custom bootstrap - remove css you don't need -- [ ] if we should vary the create new account link between awesim and ondemand, use this: - -``` -<#if realm.name = 'osc'>add osc link here -<#if realm.name = 'awesim'>add awesim link here -``` - From cb7064a8e63c094d54ad8a39a9e491d85b9b300a Mon Sep 17 00:00:00 2001 From: Eric Franz Date: Fri, 6 Oct 2017 14:58:41 -0400 Subject: [PATCH 05/15] update readme --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 6d3a4e9..4c77248 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,23 @@ awesim/ └── theme.properties ``` +* login/messages/messages_en.properties: + + ``` + logintitle=Login to the Ohio Supercomputer Center + loginTitleHtml=

Log in with your OSC username and password.

+ summary=The Ohio Super Computer Center (OSC) + ``` + +* theme.properties + + ``` + parent=ood-keycloak + + oodFooterLinks="Forgot your password?==https://www.osc.edu/content/password_change_policy_faqs,,Need Help?==https://www.osc.edu/contact/supercomputing_support,,Register for a new account==https://www.awesim.org/en/signup" + ``` + + ## Maintaining From 337c533612091400207d1f9e9dca9aeff4a0d6bc Mon Sep 17 00:00:00 2001 From: Eric Franz Date: Fri, 6 Oct 2017 20:45:23 -0400 Subject: [PATCH 06/15] specify license --- LICENSE.txt | 21 +++++++++++++++++++++ README.md | 9 +++++++++ 2 files changed, 30 insertions(+) create mode 100644 LICENSE.txt diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..2361ce6 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Ohio Supercomputer Center + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 4c77248..bbd4713 100644 --- a/README.md +++ b/README.md @@ -65,3 +65,12 @@ $ Only login.ftl has been modified, so if the user may access another page that uses a different template, we might consider adding the logo to template.ftl instead. + +## LICENSE + +- Code licensed under MIT License +- Brand icons are not. All OSC and AweSim brand icons are trademarks of OSC. + These icons should only be used to represent OSC. + Please do not use brand logos for any purpose except to represent + that particular brand or service. + From 14c92dbf18fc4ef278a79488ae1f8f83c0d4764b Mon Sep 17 00:00:00 2001 From: Eric Franz Date: Tue, 19 Dec 2017 13:37:59 -0500 Subject: [PATCH 07/15] apply template changes btween 3.0.0 & 3.4.1 --- login/login.ftl | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/login/login.ftl b/login/login.ftl index 85581b6..da1115e 100644 --- a/login/login.ftl +++ b/login/login.ftl @@ -4,10 +4,10 @@ ${msg("loginTitle",(realm.displayName!''))} <#elseif section = "header">

- ${msg("loginTitleHtml",(realm.displayNameHtml!''))} + ${msg("loginTitleHtml",(realm.displayNameHtml!''))?no_esc} <#elseif section = "form"> <#if realm.password> -
+
@@ -15,9 +15,9 @@
<#if usernameEditDisabled??> - + <#else> - +
@@ -28,7 +28,7 @@
- +
@@ -38,23 +38,23 @@
<#if realm.resetPasswordAllowed> - ${msg("doForgotPassword")} + ${msg("doForgotPassword")}
- +
@@ -71,7 +71,7 @@ <#elseif section = "info" > <#if realm.password && realm.registrationAllowed && !usernameEditDisabled??>
- ${msg("noAccount")} ${msg("doRegister")} + ${msg("noAccount")} ${msg("doRegister")}
From 4daf92d02c7be60ce7bf84504e84d9564b7996f9 Mon Sep 17 00:00:00 2001 From: Eric Franz Date: Tue, 19 Dec 2017 14:09:04 -0500 Subject: [PATCH 08/15] remove quotes from theme.properties --- example_overrides/awesim/login/theme.properties | 2 +- example_overrides/osc/login/theme.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/example_overrides/awesim/login/theme.properties b/example_overrides/awesim/login/theme.properties index 0ae578f..6d8f0e2 100644 --- a/example_overrides/awesim/login/theme.properties +++ b/example_overrides/awesim/login/theme.properties @@ -1,3 +1,3 @@ parent=ood-keycloak -oodFooterLinks="Forgot your password?==https://www.osc.edu/content/password_change_policy_faqs,,Need Help?==https://www.osc.edu/contact/supercomputing_support,,Register for a new account==https://www.awesim.org/en/signup" +oodFooterLinks=Forgot your password?==https://www.osc.edu/content/password_change_policy_faqs,,Need Help?==https://www.osc.edu/contact/supercomputing_support,,Register for a new account==https://www.awesim.org/en/signup diff --git a/example_overrides/osc/login/theme.properties b/example_overrides/osc/login/theme.properties index 08da604..cd96e47 100644 --- a/example_overrides/osc/login/theme.properties +++ b/example_overrides/osc/login/theme.properties @@ -1,3 +1,3 @@ parent=ood-keycloak -oodFooterLinks="Forgot your password?==https://www.osc.edu/content/password_change_policy_faqs,,Need Help?==https://www.osc.edu/contact/supercomputing_support,,Register for a new account==https://www.osc.edu/resources/getting_started/allocations_and_accounts" +oodFooterLinks=Forgot your password?==https://www.osc.edu/content/password_change_policy_faqs,,Need Help?==https://www.osc.edu/contact/supercomputing_support,,Register for a new account==https://www.osc.edu/resources/getting_started/allocations_and_accounts From b1c688847680260af108fe1f62cffaf275bc949c Mon Sep 17 00:00:00 2001 From: Eric Franz Date: Tue, 19 Dec 2017 14:19:10 -0500 Subject: [PATCH 09/15] add default logo and favicon --- login/resources/img/favicon.ico | Bin 0 -> 1898 bytes login/resources/img/logo.png | Bin 0 -> 31692 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 login/resources/img/favicon.ico create mode 100644 login/resources/img/logo.png diff --git a/login/resources/img/favicon.ico b/login/resources/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..9e99fee1ff02bb8baff1b68088a3f38cc002cbab GIT binary patch literal 1898 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 a{~rKaHFH7QLK2<;0000 Date: Tue, 19 Dec 2017 14:29:32 -0500 Subject: [PATCH 10/15] resize logo.png to 85px high --- login/resources/img/logo.png | Bin 31692 -> 9284 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/login/resources/img/logo.png b/login/resources/img/logo.png index 5869d8f638396110039b0ba85e40425c455f4de6..cae303946db5c479da2c833e082234b8ca9c188f 100644 GIT binary patch literal 9284 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 literal 31692 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 a{~rKaHFH7QLK2<;0000 Date: Tue, 19 Dec 2017 14:34:54 -0500 Subject: [PATCH 11/15] fix example awesim favicon --- .../awesim/login/resources/img/favicon.ico | Bin 1150 -> 908 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/example_overrides/awesim/login/resources/img/favicon.ico b/example_overrides/awesim/login/resources/img/favicon.ico index 26a456a33446cfcb27ee8d01f7f320c497f2f97b..fffad4066f3ec50b2c95c3ccd0474ac6b5033cd7 100644 GIT binary patch literal 908 zcmV;719SX|P)N2bZe?^J zG%heMHvEiZ-v9su3Q0skR5(v+e#Cd7rr077iy z5HPwz3ktLh{qMg&^|#*wmZ6lEQ89=C3nK5%YD*8$|UQ<;^rlx5-6J`Gf61Nd5TL_gNBbM^K zl#2pRLX{l+c36q<)m2fwQs2~K0)Q zbagMf%QsNuENc-9uA)#n6K0)Yn|qL0MnqY~z1y1Rl%mlnY;0`kxxT($Y(V!GBHGR% zF%1dFQ0NuTp2t(E3)k8h5xY`79?!*KFc@83jX^9HgLpg+v9+}T3P`W9^`l72MmICg zejMjMz;QSZp25`U=;6V^!S+x%^8MqdIhdPYfQ7{+Jr|djKClstNX%!mvV&t}S(Xot zj*ZdriOJxbv5C!z$tigIZW^XT5eP?SAu=+SVNRQm&Pmbsv^ z+5C*`0AUWuAvz`-g}2BRYugoxGrEl-iE8wzhq#KLng!oO3N!i zK?6ZnZ|daVf!CEq1o4sA>l+}v2zC@>$cEDM9-)@EnpA)e*K@ z31r_fL4H9Y6cuxNnk_|;muH!`6c=Afl>a~2pG4Ej&Y4WPw$#+Lk))&x!^z2)>N1Q* iqse62o+wL%!SEB`O$SX8$_zRH0000(ZE zFvb`V8^gkd8x>k!(?FrpYOz#`q%DHY@%%I1VKTMN>AiFA|D8FHn+lP~-+}_czlEY< zvk+T_5EeFeu}AasA_SkAKSU&qHXY3DxX~VU*H#5bY&*x2u-Yo+3w$^;YK{A~-`Opl zuBc~sk^fIwp`ZR|IAcv0v}U&cNN5PmzLGKGcan`)8AJN^7HhtSW1&G~jO)&bM`}+U z4bg?OVQQ+M(|PRS!m@pUJVe&*0Rn@5AP!=JzkL2HjebsXSR&s*lAb<_Q_t;~`i!3!&lbsXa#q!X>2yWh zH5E!g@)sQ&d}48(`X9&1d+WQ-PmQOk@dWeyelX0Aa8FjSm)6!YPxn0w)O#mJHI)h- zET5!%T`_v#U7(v+zv(*Ynf+zvoz3&A{x0Wzs6wGi+azI+7+h-(Uwt4q|Itq=Ro}<; zBmbX?bsBn;q?gYV=KTFUyKdxy{#|O?sQ=@K6|H}U`UhSuX*_Gea6X>kRHmft-~2G+ z;djdv|FNc;n)8(?p_ee8m;Qdt4=guVTx*T=$o}y?RPTYqKC9Pyj%U_ Date: Tue, 19 Dec 2017 14:41:52 -0500 Subject: [PATCH 12/15] Add license to README --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index bbd4713..9306025 100644 --- a/README.md +++ b/README.md @@ -74,3 +74,25 @@ Only login.ftl has been modified, so if the user may access another page that us Please do not use brand logos for any purpose except to represent that particular brand or service. + +The MIT License (MIT) + +Copyright (c) 2016 Ohio Supercomputer Center + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 774ca1d29082480ac8bf8c1efacf0f92348796e0 Mon Sep 17 00:00:00 2001 From: Eric Franz Date: Tue, 19 Dec 2017 14:42:11 -0500 Subject: [PATCH 13/15] Remove duplicate license (its now in README) --- LICENSE.txt | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 LICENSE.txt diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 2361ce6..0000000 --- a/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Ohio Supercomputer Center - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. From 861665a1bb51d6b5220e4b5a666d776abea9af02 Mon Sep 17 00:00:00 2001 From: Eric Franz Date: Tue, 19 Dec 2017 14:43:43 -0500 Subject: [PATCH 14/15] Update README.md --- README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9306025..ee241f6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # OnDemand Keycloak theme +Currently updated to work with Keycloak 3.4.1. + +## Install + 1. cd to keycloak/themes directory 2. git clone or wget and untar this repo, renaming the directory to `ood-keycloak` 3. create an override theme based on this (examples under `example_overrides`) or use base theme as it is @@ -9,7 +13,7 @@ i.e. ``` -cd /opt/keycloak-3.3.0.CR2/themes +cd /opt/keycloak-3.4.1/themes git clone https://github.com/OSC/keycloak-theme.git ood-keycloak cp -r ood-keycloak/example_overrides/awesim awesim cp -r ood-keycloak/example_overrides/osc osc @@ -53,13 +57,13 @@ awesim/ ## Maintaining -Install by cloning this repo to /opt/keycloak-3.0.0.Final/themes/osc. Then make the files read only by the user keycloak. +Install by cloning this repo to /opt/keycloak-3.4.1.Final/themes/osc. Then make the files read only by the user keycloak. The login.ftl template has been modified from the original in base/login/login.ftl. When upgrading to a new version of KeyCloak, verify that this base template did not change. ``` -$ diff /opt/keycloak-3.0.0.Final/themes/base/login/login.ftl /opt/keycloak-2.5.4.Final/themes/base/login/login.ftl +$ diff /opt/keycloak-3.4.1.Final/themes/base/login/login.ftl /opt/keycloak-3.0.0.Final/themes/base/login/login.ftl $ ``` From 0a50dacb2c12ade37c530e167a8fed6e683764a1 Mon Sep 17 00:00:00 2001 From: Eric Franz Date: Tue, 19 Dec 2017 14:44:32 -0500 Subject: [PATCH 15/15] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index ee241f6..99b982e 100644 --- a/README.md +++ b/README.md @@ -57,8 +57,6 @@ awesim/ ## Maintaining -Install by cloning this repo to /opt/keycloak-3.4.1.Final/themes/osc. Then make the files read only by the user keycloak. - The login.ftl template has been modified from the original in base/login/login.ftl. When upgrading to a new version of KeyCloak, verify that this base template did not change.