2016-09-30 14:43:40 +03:00
|
|
|
import Oauth2 from 'torii/providers/oauth2-code';
|
|
|
|
import injectService from 'ember-service/inject';
|
|
|
|
import computed from 'ember-computed';
|
|
|
|
|
|
|
|
let GhostOauth2 = Oauth2.extend({
|
|
|
|
|
|
|
|
config: injectService(),
|
|
|
|
|
|
|
|
name: 'ghost-oauth2',
|
2016-10-28 16:07:50 +03:00
|
|
|
baseUrl: computed(function () {
|
|
|
|
return `${this.get('config.ghostAuthUrl')}/oauth2/authorize`;
|
|
|
|
}),
|
2016-09-30 14:43:40 +03:00
|
|
|
apiKey: computed(function () {
|
|
|
|
return this.get('config.ghostAuthId');
|
|
|
|
}),
|
|
|
|
|
|
|
|
optionalUrlParams: ['type', 'email'],
|
|
|
|
|
|
|
|
responseParams: ['code'],
|
|
|
|
|
|
|
|
// we want to redirect to the ghost admin app by default
|
|
|
|
redirectUri: window.location.href.replace(/(\/ghost)(.*)/, '$1/'),
|
|
|
|
|
|
|
|
open(options) {
|
|
|
|
if (options.type) {
|
|
|
|
this.set('type', options.type);
|
|
|
|
}
|
|
|
|
if (options.email) {
|
|
|
|
this.set('email', options.email);
|
|
|
|
}
|
|
|
|
return this._super(...arguments);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
export default GhostOauth2;
|