1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-08-08 06:55:28 +02:00

Fix SSO issue

This commit is contained in:
zinyando 2016-07-05 16:54:31 +02:00
parent e26108b90b
commit 3dccfc6a24
7 changed files with 128 additions and 124 deletions

View file

@ -23,14 +23,26 @@ export default Base.extend({
return reject(); return reject();
}, },
authenticate({password, email}) { authenticate(credentials) {
let domain = netUtil.getSubdomain(); let domain = netUtil.getSubdomain();
let encoded;
if (typeof credentials === 'object') {
let { password, email } = credentials;
if (!isPresent(password) || !isPresent(email)) { if (!isPresent(password) || !isPresent(email)) {
return Ember.RSVP.reject("invalid"); return Ember.RSVP.reject("invalid");
} }
var encoded = encodingUtil.Base64.encode(`${domain}:${email}:${password}`); encoded = encodingUtil.Base64.encode(`${domain}:${email}:${password}`);
} else if (typeof credentials === 'string') {
encoded = credentials;
} else {
return Ember.RSVP.reject("invalid");
}
var headers = { var headers = {
'Authorization': 'Basic ' + encoded 'Authorization': 'Basic ' + encoded

View file

@ -1,23 +1,14 @@
import Ember from 'ember'; import Ember from 'ember';
export default Ember.Route.extend({ export default Ember.Route.extend({
beforeModel() { session: Ember.inject.service(),
this.session.clearSession();
},
model(params) { model({ token }) {
let token = params.token; this.get("session").authenticate('authenticator:documize', token)
.then(() => {
if (is.undefined(token) || is.null(token) || token.length === 0) { this.transitionTo('folders.folder');
return; }, () => {
} this.transitionTo('auth.login');
let self = this;
this.session.sso(decodeURIComponent(token)).then(function() {
self.transitionTo('folders.folder');
}, function() {
self.transitionTo('auth.login');
console.log(">>>>> Documize SSO failure"); console.log(">>>>> Documize SSO failure");
}); });
}, },

View file

@ -3,7 +3,7 @@ import models from '../../../utils/model';
import NotifierMixin from '../../../mixins/notifier'; import NotifierMixin from '../../../mixins/notifier';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
export default Ember.Route.extend(NotifierMixin, AuthenticatedRouteMixin, { export default Ember.Route.extend(NotifierMixin, {
folderService: Ember.inject.service('folder'), folderService: Ember.inject.service('folder'),
userService: Ember.inject.service('user'), userService: Ember.inject.service('user'),
folder: {}, folder: {},
@ -113,7 +113,8 @@ export default Ember.Route.extend(NotifierMixin, AuthenticatedRouteMixin, {
onPermission: function (folder, message, permissions) { onPermission: function (folder, message, permissions) {
var self = this; var self = this;
var data = permissions.map(function(obj){ return obj.getProperties('orgId', 'folderId' , 'userId', 'canEdit', 'canView'); }); var data = permissions.map(function (obj) {
return obj.getProperties('orgId', 'folderId', 'userId', 'canEdit', 'canView'); });
var payload = { Message: message, Roles: data }; var payload = { Message: message, Roles: data };
this.get('folderService').savePermissions(folder.get('id'), payload).then(function () { this.get('folderService').savePermissions(folder.get('id'), payload).then(function () {

View file

@ -9,9 +9,9 @@
// //
// https://documize.com // https://documize.com
import Ember from 'ember'; import Ember from 'ember';
import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin'; import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin';
import netUtil from '../utils/net';
const { const {
inject: { service } inject: { service }