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';
|
2017-02-01 19:15:47 +03:00
|
|
|
import ghostPaths from 'ghost-admin/utils/ghost-paths';
|
2016-09-30 14:43:40 +03:00
|
|
|
|
|
|
|
let GhostOauth2 = Oauth2.extend({
|
|
|
|
|
|
|
|
config: injectService(),
|
|
|
|
|
|
|
|
name: 'ghost-oauth2',
|
2016-10-28 16:07:50 +03:00
|
|
|
baseUrl: computed(function () {
|
2017-02-01 19:15:47 +03:00
|
|
|
return `${this.get('config.ghostAuthUrl')}/oauth2/authorize/`;
|
2016-10-28 16:07:50 +03:00
|
|
|
}),
|
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
|
2016-12-03 11:56:51 +03:00
|
|
|
init() {
|
|
|
|
this._super(...arguments);
|
2017-02-01 19:15:47 +03:00
|
|
|
let adminPath = ghostPaths().adminRoot;
|
|
|
|
let redirectUri = `${window.location.protocol}//${window.location.host}`;
|
|
|
|
|
|
|
|
redirectUri += adminPath;
|
|
|
|
|
|
|
|
this.set('redirectUri', redirectUri);
|
2016-12-03 11:56:51 +03:00
|
|
|
},
|
2016-09-30 14:43:40 +03:00
|
|
|
|
|
|
|
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;
|