1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-08-05 05:25:27 +02:00

improved Keycloak error handling

This commit is contained in:
Harvey Kandola 2017-03-28 10:25:32 +01:00
parent ce42a18fac
commit 1e077fdf2e
10 changed files with 773 additions and 705 deletions

View file

@ -12,12 +12,13 @@
import Ember from 'ember';
import constants from '../../utils/constants';
import encoding from '../../utils/encoding';
import NotifierMixin from "../../mixins/notifier";
const {
computed
} = Ember;
export default Ember.Component.extend({
export default Ember.Component.extend(NotifierMixin, {
appMeta: Ember.inject.service(),
isDocumizeProvider: computed.equal('authProvider', constants.AuthProvider.Documize),
isKeycloakProvider: computed.equal('authProvider', constants.AuthProvider.Keycloak),
@ -33,7 +34,8 @@ export default Ember.Component.extend({
clientId: '',
publicKey: '',
adminUser: '',
adminPassword: ''
adminPassword: '',
group: ''
},
didReceiveAttrs() {
@ -104,16 +106,50 @@ export default Ember.Component.extend({
}
config = Ember.copy(this.get('keycloakConfig'));
config.url = config.url.trim();
config.realm = config.realm.trim();
config.clientId = config.clientId.trim();
config.publicKey = config.publicKey.trim();
config.group = is.undefined(config.group) ? '' : config.group.trim();
config.adminUser = config.adminUser.trim();
config.adminPassword = config.adminPassword.trim();
if (is.endWith(config.url, '/')) {
config.url = config.url.substring(0, config.url.length-1);
}
Ember.set(config, 'publicKey', encoding.Base64.encode(this.get('keycloakConfig.publicKey')));
break;
}
let data = { authProvider: provider, authConfig: JSON.stringify(config) };
this.get('onSave')(provider, config).then(() => {
this.get('onSave')(data).then(() => {
if (data.authProvider === constants.AuthProvider.Keycloak) {
this.get('onSync')().then((response) => {
if (response.isError) {
this.showNotification(response.message);
data.authProvider = constants.AuthProvider.Documize;
this.get('onSave')(data).then(() => {
this.showNotification('Reverted back to Documize');
});
} else {
if (data.authProvider === this.get('appMeta.authProvider')) {
this.showNotification(response.message);
} else {
this.get('onChange')(data);
}
}
});
} else {
this.showNotification('Saved');
}
});
},
onSync() {
this.get('onSync')();
}
}
});
/*
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl4M0UGhKFHe6LKyx2qNu5zTzYifMcsyvH+lV2Z3vgwQtuCf5zFrW/fHglBq9C1DQko/r2eUlVQOM+9C5nfmI60cLVGXviXRU1nWZ3MKQDogaVmSqnESOyVqBfOFEHbjuEeh5xqsLTIGElHFkEVgOfbsqs4GSmCYDgkYc6GMM9YIsk86VbBmprfaXUHmO44cR+Kh6y7rvoTAfKSohRav4+6Pl2+kZRj6SebG629OQb+q6IWVe93kC6NJWk9Y4v5teaAKui/VsoY83Ox/AblNt1wUl4QPrS9t/Be1h0M9XHfmQkmWAZnMkeo6vkcwvU9ioXkX4Zy/148M8u+WXSpgagQIDAQAB
*/