1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-08-04 21:15:24 +02:00

sync users wip

This commit is contained in:
Harvey Kandola 2017-03-17 19:01:32 +00:00
parent 1c6e1c7bd7
commit 945fadaf00
6 changed files with 166 additions and 30 deletions

View file

@ -25,11 +25,15 @@ export default Ember.Component.extend({
KeycloakRealmError: computed.empty('keycloakConfig.realm'),
KeycloakClientIdError: computed.empty('keycloakConfig.clientId'),
KeycloakPublicKeyError: computed.empty('keycloakConfig.publicKey'),
KeycloakAdminUserError: computed.empty('keycloakConfig.adminUser'),
KeycloakAdminPasswordError: computed.empty('keycloakConfig.adminPassword'),
keycloakConfig: {
url: '',
realm: '',
clientId: '',
publicKey: '',
adminUser: '',
adminPassword: ''
},
didReceiveAttrs() {
@ -89,16 +93,14 @@ export default Ember.Component.extend({
this.$("#keycloak-publicKey").focus();
return;
}
// let pk = this.get('keycloakConfig.publicKey');
// if (is.not.startWith(pk, '-----BEGIN PUBLIC KEY-----')) {
// pk = '-----BEGIN PUBLIC KEY-----' + pk;
// }
// if (is.not.endWith(pk, '-----END PUBLIC KEY-----')) {
// pk = pk + '-----END PUBLIC KEY-----' ;
// }
// this.set('keycloakConfig.publicKey', pk);
if (this.get('KeycloakAdminUserError')) {
this.$("#keycloak-admin-user").focus();
return;
}
if (this.get('KeycloakAdminPasswordError')) {
this.$("#keycloak-admin-password").focus();
return;
}
config = Ember.copy(this.get('keycloakConfig'));
Ember.set(config, 'publicKey', encoding.Base64.encode(this.get('keycloakConfig.publicKey')));

View file

@ -15,7 +15,8 @@ import constants from '../../../utils/constants';
export default Ember.Route.extend({
session: Ember.inject.service(),
appMeta: Ember.inject.service(),
kcAuth: Ember.inject.service(),
kcAuth: Ember.inject.service(),
localStorage: Ember.inject.service(),
queryParams: {
mode: {
refreshModel: false
@ -33,11 +34,16 @@ export default Ember.Route.extend({
return;
}
if (this.get('mode') === 'reject') {
return;
}
this.get('kcAuth').boot(JSON.parse(authConfig)).then((kc) => {
if (!kc.authenticated) {
this.get('kcAuth').login().then(() => {
}, (reject) => {
console.log(reject);
this.get('localStorage').storeSessionItem('kc-error', reject);
this.transitionTo('auth.keycloak', { queryParams: { mode: 'reject' }});
});
}
@ -47,16 +53,23 @@ export default Ember.Route.extend({
this.get('audit').record("logged-in-keycloak");
this.transitionTo('folders');
}, (reject) => {
debugger;
console.log(">>>>> Documize Keycloak authentication failure");
this.transitionTo('auth.login');
this.get('localStorage').storeSessionItem('kc-error', reject);
this.transitionTo('auth.keycloak', { queryParams: { mode: 'reject' }});
});
}, (err) => {
console.log(err);
}, (reject) => {
this.get('localStorage').storeSessionItem('kc-error', reject);
this.transitionTo('auth.keycloak', { queryParams: { mode: 'reject' }});
});
}, (reason) => {
console.log(reason);
}, (reject) => {
this.get('localStorage').storeSessionItem('kc-error', reject);
this.transitionTo('auth.keycloak', { queryParams: { mode: 'reject' }});
});
},
model() {
return {
mode: this.get('mode')
}
}
});

View file

@ -1,4 +1,12 @@
<div class="sso-box">
<p>Authenticating with Keycloak...</p>
<img src="/assets/img/busy-gray.gif" />
</div>
{{#if (is-equal model.mode 'login')}}
<div class="sso-box">
<p>Authenticating with Keycloak...</p>
<img src="/assets/img/busy-gray.gif" />
</div>
{{/if}}
{{#if (is-equal model.mode 'reject')}}
<div class="sso-box">
<p>Keycloak Authentication Failure</p>
</div>
{{/if}}

View file

@ -15,6 +15,7 @@ import constants from '../../../utils/constants';
export default Ember.Route.extend({
appMeta: Ember.inject.service(),
kcAuth: Ember.inject.service(),
localStorage: Ember.inject.service(),
showLogin: false,
beforeModel(/*transition*/) {
@ -28,13 +29,16 @@ export default Ember.Route.extend({
this.get('kcAuth').boot(JSON.parse(authConfig)).then(() => {
this.get('kcAuth').login().then(() => {
}, (reject) => {
console.log(reject);
this.get('localStorage').storeSessionItem('kc-error', reject);
this.transitionTo('auth.keycloak', { queryParams: { mode: 'reject' }});
});
}, (reject) => {
console.log(reject);
this.get('localStorage').storeSessionItem('kc-error', reject);
this.transitionTo('auth.keycloak', { queryParams: { mode: 'reject' }});
});
break;
default:
this.set('showLogin', true);
break;

View file

@ -13,7 +13,7 @@
{{#if isKeycloakProvider}}
<div class="form-header">
<div class="title">Keycloak Configuration</div>
<div class="tip">Connection parameters</div>
<div class="tip">Connection parameters &mdash; create a documize user in Master realm with 'manage-users' role against target realm</div>
</div>
<div class="input-control">
<label>Keycloak Server URL</label>
@ -35,6 +35,16 @@
<div class="tip">Copy the RSA public key from Realm Settings &rarr; Keys</div>
{{textarea id="keycloak-publicKey" type="text" value=keycloakConfig.publicKey rows=7 class=(if KeycloakPublicKeyError 'error')}}
</div>
<div class="input-control">
<label>Keycloak Username</label>
<div class="tip">Used to connect with Keycloak and sync users with Documize</div>
{{input id="keycloak-admin-user" type="text" value=keycloakConfig.adminUser class=(if KeycloakAdminUserError 'error')}}
</div>
<div class="input-control">
<label>Keycloak Password</label>
<div class="tip">Used to connect with Keycloak and sync users with Documize</div>
{{input id="keycloak-admin-password" type="password" value=keycloakConfig.adminPassword class=(if KeycloakAdminPasswordError 'error')}}
</div>
{{/if}}
<div class="regular-button button-blue" {{action 'onSave'}}>save</div>