keycloak-aplcache
Changes
services/src/main/java/org/keycloak/forms/account/freemarker/model/AccountFederatedIdentityBean.java 3(+1 -2)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/account/AccountTest.java 8(+4 -4)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/i18n/LoginPageTest.java 8(+4 -4)
themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-oidc.html 4(+3 -1)
themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-saml.html 4(+3 -1)
Details
diff --git a/model/jpa/src/main/resources/META-INF/jpa-changelog-2.2.0.xml b/model/jpa/src/main/resources/META-INF/jpa-changelog-2.2.0.xml
index 39e7fe4..adc49fb 100755
--- a/model/jpa/src/main/resources/META-INF/jpa-changelog-2.2.0.xml
+++ b/model/jpa/src/main/resources/META-INF/jpa-changelog-2.2.0.xml
@@ -24,10 +24,6 @@
<column name="RESOURCE_TYPE" type="VARCHAR(64)"></column>
</addColumn>
- <addColumn tableName="IDENTITY_PROVIDER">
- <column name="PROVIDER_DISPLAY_NAME" type="VARCHAR(36)"></column>
- </addColumn>
-
<createTable tableName="CREDENTIAL_ATTRIBUTE">
<column name="ID" type="VARCHAR(36)">
<constraints nullable="false"/>
@@ -62,4 +58,4 @@
</changeSet>
-</databaseChangeLog>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/model/jpa/src/main/resources/META-INF/jpa-changelog-2.3.0.xml b/model/jpa/src/main/resources/META-INF/jpa-changelog-2.3.0.xml
index 6a3f9fe..a73ee6b 100755
--- a/model/jpa/src/main/resources/META-INF/jpa-changelog-2.3.0.xml
+++ b/model/jpa/src/main/resources/META-INF/jpa-changelog-2.3.0.xml
@@ -33,8 +33,9 @@
<dropColumn tableName="USER_ENTITY" columnName="TOTP" />
-
-
+ <addColumn tableName="IDENTITY_PROVIDER">
+ <column name="PROVIDER_DISPLAY_NAME" type="VARCHAR(255)"></column>
+ </addColumn>
</changeSet>
diff --git a/server-spi/src/main/java/org/keycloak/models/utils/KeycloakModelUtils.java b/server-spi/src/main/java/org/keycloak/models/utils/KeycloakModelUtils.java
index 928963c..4c1a4bb 100755
--- a/server-spi/src/main/java/org/keycloak/models/utils/KeycloakModelUtils.java
+++ b/server-spi/src/main/java/org/keycloak/models/utils/KeycloakModelUtils.java
@@ -688,24 +688,18 @@ public final class KeycloakModelUtils {
}
- /**
- * Retrieve display name based on identity provider type
- * @param session
- * @param displayName
- * @param providerId
- * @return
- */
- public static String getIdentityProviderDisplayName(KeycloakSession session, String displayName, String providerId) {
+ public static String getIdentityProviderDisplayName(KeycloakSession session, IdentityProviderModel provider) {
+ String displayName = provider.getDisplayName();
+ if (displayName != null && !displayName.isEmpty()) {
+ return displayName;
+ }
SocialIdentityProviderFactory providerFactory = (SocialIdentityProviderFactory) session.getKeycloakSessionFactory()
- .getProviderFactory(SocialIdentityProvider.class, providerId);
-
- if ((displayName == null || displayName.isEmpty()) && (providerId.contains("saml") || providerId.contains("oidc"))) {
- return providerId;
- } else if (providerFactory != null && (displayName == null || displayName.isEmpty())) {
+ .getProviderFactory(SocialIdentityProvider.class, provider.getProviderId());
+ if (providerFactory != null) {
return providerFactory.getName();
} else {
- return displayName;
+ return provider.getAlias();
}
}
diff --git a/services/src/main/java/org/keycloak/forms/account/freemarker/model/AccountFederatedIdentityBean.java b/services/src/main/java/org/keycloak/forms/account/freemarker/model/AccountFederatedIdentityBean.java
index 5ef319c..3c63de2 100755
--- a/services/src/main/java/org/keycloak/forms/account/freemarker/model/AccountFederatedIdentityBean.java
+++ b/services/src/main/java/org/keycloak/forms/account/freemarker/model/AccountFederatedIdentityBean.java
@@ -71,8 +71,7 @@ public class AccountFederatedIdentityBean {
.queryParam("stateChecker", stateChecker)
.build().toString();
- String displayName = KeycloakModelUtils.getIdentityProviderDisplayName(session,
- provider.getDisplayName(), provider.getProviderId());
+ String displayName = KeycloakModelUtils.getIdentityProviderDisplayName(session, provider);
FederatedIdentityEntry entry = new FederatedIdentityEntry(identity, displayName, provider.getAlias(), provider.getAlias(), actionUrl,
provider.getConfig() != null ? provider.getConfig().get("guiOrder") : null);
orderedSet.add(entry);
diff --git a/services/src/main/java/org/keycloak/forms/login/freemarker/model/IdentityProviderBean.java b/services/src/main/java/org/keycloak/forms/login/freemarker/model/IdentityProviderBean.java
index c31bea7..87b935a 100755
--- a/services/src/main/java/org/keycloak/forms/login/freemarker/model/IdentityProviderBean.java
+++ b/services/src/main/java/org/keycloak/forms/login/freemarker/model/IdentityProviderBean.java
@@ -62,8 +62,7 @@ public class IdentityProviderBean {
private void addIdentityProvider(Set<IdentityProvider> orderedSet, RealmModel realm, URI baseURI, IdentityProviderModel identityProvider) {
String loginUrl = Urls.identityProviderAuthnRequest(baseURI, identityProvider.getAlias(), realm.getName()).toString();
- String displayName = KeycloakModelUtils.getIdentityProviderDisplayName(session,
- identityProvider.getDisplayName(), identityProvider.getProviderId());
+ String displayName = KeycloakModelUtils.getIdentityProviderDisplayName(session, identityProvider);
orderedSet.add(new IdentityProvider(identityProvider.getAlias(),
displayName, identityProvider.getProviderId(), loginUrl,
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/account/AccountTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/account/AccountTest.java
index 4d45b21..881b8b5 100755
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/account/AccountTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/account/AccountTest.java
@@ -82,11 +82,11 @@ public class AccountTest extends TestRealmKeycloakTest {
.build());
testRealm.addIdentityProvider(IdentityProviderBuilder.create()
.providerId("saml")
- .alias("saml")
+ .alias("mysaml")
.build());
testRealm.addIdentityProvider(IdentityProviderBuilder.create()
.providerId("oidc")
- .alias("oidc")
+ .alias("myoidc")
.displayName("MyOIDC")
.build());
@@ -809,8 +809,8 @@ public class AccountTest extends TestRealmKeycloakTest {
public void testIdentityProviderCapitalization(){
loginPage.open();
Assert.assertEquals("GitHub", loginPage.findSocialButton("github").getText());
- Assert.assertEquals("saml", loginPage.findSocialButton("saml").getText());
- Assert.assertEquals("MyOIDC", loginPage.findSocialButton("oidc").getText());
+ Assert.assertEquals("mysaml", loginPage.findSocialButton("mysaml").getText());
+ Assert.assertEquals("MyOIDC", loginPage.findSocialButton("myoidc").getText());
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/i18n/LoginPageTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/i18n/LoginPageTest.java
index 6f6e989..c1eb4f3 100755
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/i18n/LoginPageTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/i18n/LoginPageTest.java
@@ -47,11 +47,11 @@ public class LoginPageTest extends AbstractI18NTest {
.build());
testRealm.addIdentityProvider(IdentityProviderBuilder.create()
.providerId("saml")
- .alias("saml")
+ .alias("mysaml")
.build());
testRealm.addIdentityProvider(IdentityProviderBuilder.create()
.providerId("oidc")
- .alias("oidc")
+ .alias("myoidc")
.displayName("MyOIDC")
.build());
@@ -112,8 +112,8 @@ public class LoginPageTest extends AbstractI18NTest {
public void testIdentityProviderCapitalization(){
loginPage.open();
Assert.assertEquals("GitHub", loginPage.findSocialButton("github").getText());
- Assert.assertEquals("saml", loginPage.findSocialButton("saml").getText());
- Assert.assertEquals("MyOIDC", loginPage.findSocialButton("oidc").getText());
+ Assert.assertEquals("mysaml", loginPage.findSocialButton("mysaml").getText());
+ Assert.assertEquals("MyOIDC", loginPage.findSocialButton("myoidc").getText());
}
}
diff --git a/themes/src/main/resources/theme/base/admin/resources/js/controllers/realm.js b/themes/src/main/resources/theme/base/admin/resources/js/controllers/realm.js
index 111af84..4b5b839 100644
--- a/themes/src/main/resources/theme/base/admin/resources/js/controllers/realm.js
+++ b/themes/src/main/resources/theme/base/admin/resources/js/controllers/realm.js
@@ -689,14 +689,6 @@ module.controller('RealmDefaultRolesCtrl', function ($scope, Realm, realm, clien
module.controller('IdentityProviderTabCtrl', function(Dialog, $scope, Current, Notifications, $location) {
- for (var i in $scope.allProviders) {
- var provider = $scope.allProviders[i];
- if (provider.groupName == 'Social' && (provider.id == $scope.identityProvider.alias)) {
- $scope.identityProvider.displayName = provider.name;
- } else if (!$scope.identityProvider.displayName) {
- $scope.identityProvider.displayName = provider.id;
- }
- }
$scope.removeIdentityProvider = function() {
Dialog.confirmDelete($scope.identityProvider.alias, 'provider', function() {
$scope.identityProvider.$remove({
@@ -776,12 +768,18 @@ module.controller('RealmIdentityProviderCtrl', function($scope, $filter, $upload
if (instance && instance.alias) {
$scope.identityProvider = angular.copy(instance);
$scope.newIdentityProvider = false;
+ for (var i in serverInfo.identityProviders) {
+ var provider = serverInfo.identityProviders[i];
+
+ if (provider.id == instance.providerId) {
+ $scope.provider = provider;
+ }
+ }
} else {
$scope.identityProvider = {};
$scope.identityProvider.config = {};
$scope.identityProvider.alias = providerFactory.id;
$scope.identityProvider.providerId = providerFactory.id;
- $scope.identityProvider.displayName = providerFactory.displayName;
$scope.identityProvider.enabled = true;
$scope.identityProvider.authenticateByDefault = false;
@@ -915,14 +913,8 @@ module.controller('RealmIdentityProviderCtrl', function($scope, $filter, $upload
for (var i in $scope.allProviders) {
var provider = $scope.allProviders[i];
-
- if (provider.groupName == 'Social' && (provider.id == configProvidedId)) {
- $scope.allProviders.splice(i, 1);
- configuredProviders[j].displayName = provider.name;
- break;
- } else if (!configuredProviders[j].displayName) {
- configuredProviders[j].displayName = configProvidedId;
- break;
+ if (provider.id == configProvidedId) {
+ configuredProviders[j].provider = provider;
}
}
}
diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider.html b/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider.html
index f737588..0de7894 100755
--- a/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider.html
+++ b/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider.html
@@ -54,7 +54,11 @@
<tbody>
<tr ng-repeat="identityProvider in configuredProviders">
<td>
- <a href="#/realms/{{realm.realm}}/identity-provider-settings/provider/{{identityProvider.providerId}}/{{identityProvider.alias}}">{{identityProvider.displayName}}</a>
+ <a href="#/realms/{{realm.realm}}/identity-provider-settings/provider/{{identityProvider.providerId}}/{{identityProvider.alias}}">
+ <span data-ng-show="identityProvider.displayName">{{identityProvider.displayName}}</span>
+ <span data-ng-show="!identityProvider.displayName && identityProvider.provider.groupName == 'Social'">{{identityProvider.provider.name}}</span>
+ <span data-ng-show="!identityProvider.displayName && identityProvider.provider.groupName != 'Social'">{{identityProvider.alias}}</span>
+ </a>
</td>
<td>{{identityProvider.providerId}}</td>
<td translate="{{identityProvider.enabled}}"></td>
diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-oidc.html b/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-oidc.html
index 83e1f13..aceae0a 100755
--- a/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-oidc.html
+++ b/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-oidc.html
@@ -1,7 +1,9 @@
<div class="col-sm-9 col-md-10 col-sm-push-3 col-md-push-2">
<ol class="breadcrumb">
<li><a href="#/realms/{{realm.realm}}/identity-provider-settings">{{:: 'identity-providers' | translate}}</a></li>
- <li>{{identityProvider.displayName}}</li>
+ <li data-ng-show="!newIdentityProvider && identityProvider.displayName">{{identityProvider.displayName}}</li>
+ <li data-ng-show="!newIdentityProvider && !identityProvider.displayName">{{identityProvider.alias}}</li>
+ <li data-ng-show="newIdentityProvider">{{:: 'add-identity-provider' | translate}}</li>
</ol>
<kc-tabs-identity-provider></kc-tabs-identity-provider>
diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-saml.html b/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-saml.html
index df51b16..0ed66c6 100755
--- a/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-saml.html
+++ b/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-saml.html
@@ -1,7 +1,9 @@
<div class="col-sm-9 col-md-10 col-sm-push-3 col-md-push-2" data-ng-init="initSamlProvider()">
<ol class="breadcrumb">
<li><a href="#/realms/{{realm.realm}}/identity-provider-settings">{{:: 'identity-providers' | translate}}</a></li>
- <li>{{identityProvider.displayName}}</li>
+ <li data-ng-show="!newIdentityProvider && identityProvider.displayName">{{identityProvider.displayName}}</li>
+ <li data-ng-show="!newIdentityProvider && !identityProvider.displayName">{{identityProvider.alias}}</li>
+ <li data-ng-show="newIdentityProvider">{{:: 'add-identity-provider' | translate}}</li>
</ol>
<kc-tabs-identity-provider></kc-tabs-identity-provider>
diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-social.html b/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-social.html
index 975ba69..2c51dd5 100755
--- a/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-social.html
+++ b/themes/src/main/resources/theme/base/admin/resources/partials/realm-identity-provider-social.html
@@ -1,7 +1,8 @@
<div class="col-sm-9 col-md-10 col-sm-push-3 col-md-push-2">
<ol class="breadcrumb">
<li><a href="#/realms/{{realm.realm}}/identity-provider-settings">{{:: 'identity-providers' | translate}}</a></li>
- <li>{{identityProvider.displayName}}</li>
+ <li data-ng-hide="newIdentityProvider">{{provider.name}}</li>
+ <li data-ng-show="newIdentityProvider">{{:: 'add-identity-provider' | translate}}</li>
</ol>
<kc-tabs-identity-provider></kc-tabs-identity-provider>
diff --git a/themes/src/main/resources/theme/base/admin/resources/templates/kc-tabs-identity-provider.html b/themes/src/main/resources/theme/base/admin/resources/templates/kc-tabs-identity-provider.html
index 1041dfa..279e598 100644
--- a/themes/src/main/resources/theme/base/admin/resources/templates/kc-tabs-identity-provider.html
+++ b/themes/src/main/resources/theme/base/admin/resources/templates/kc-tabs-identity-provider.html
@@ -1,6 +1,9 @@
<div data-ng-controller="IdentityProviderTabCtrl">
<h1 data-ng-hide="path[0] == 'create'">
- {{identityProvider.displayName}}
+ <span data-ng-show="identityProvider.displayName">{{identityProvider.displayName}}</span>
+ <span data-ng-show="!identityProvider.displayName && provider.groupName == 'Social'">{{provider.name}}</span>
+ <span data-ng-show="!identityProvider.displayName && provider.groupName != 'Social'">{{identityProvider.alias}}</span>
+
<i class="pficon pficon-delete clickable" data-ng-hide="newIdentityProvider || changed" data-ng-click="removeIdentityProvider()"></i>
</h1>
<h1 data-ng-show="path[0] == 'create'">{{:: 'add-identity-provider' | translate}}</h1>