Ghost-Admin/app/mixins/unauthenticated-route-mixin.js

36 lines
1.1 KiB
JavaScript

import Mixin from '@ember/object/mixin';
import {inject as service} from '@ember/service';
export default Mixin.create({
ajax: service(),
ghostPaths: service(),
session: service(),
routeIfAlreadyAuthenticated: 'home',
beforeModel() {
let authUrl = this.get('ghostPaths.url').api('authentication', 'setup');
// check the state of the setup process via the API
return this.ajax.request(authUrl).then((result) => {
let [setup] = result.setup;
if (setup.status !== true) {
this.transitionTo('setup');
} else {
// NOTE: this is the same as ESA's UnauthenticatedRouteMixin,
// adding that mixin to this and calling _super wasn't calling
// the ESA mixin's beforeModel method
if (this.session.get('isAuthenticated')) {
let routeIfAlreadyAuthenticated = this.routeIfAlreadyAuthenticated;
return this.transitionTo(routeIfAlreadyAuthenticated);
} else {
return this._super(...arguments);
}
}
});
}
});