framework/ember/app/app.js
2014-12-20 16:56:46 +10:30

82 lines
2.1 KiB
JavaScript

import Ember from 'ember';
import Resolver from 'ember/resolver';
import loadInitializers from 'ember/load-initializers';
Ember.MODEL_FACTORY_INJECTIONS = true;
var App = Ember.Application.extend({
modulePrefix: 'flarum', // TODO: loaded via config
Resolver: Resolver,
registerPlugin: function(plugin) {
console.log('Plugin loaded: '+plugin.name);
plugin.boot();
}
});
loadInitializers(App, 'flarum');
//-----------------------------------------
// TODO: Move all this to an initializer
/*
import User from 'flarum/models/user';
// Authentication
import BaseAuthenticator from 'simple-auth/authenticators/base';
var FlarumAuthenticator = BaseAuthenticator.extend({
restore: function(data) {
// return Ember.RSVP.Promise.resolve(data);
},
authenticate: function(credentials) {
return new Ember.RSVP.Promise(function(resolve, reject) {
Ember.$.ajax({
url: 'http://localhost/public/Flarum/flarum/public/api/auth',
type: 'POST',
data: { type: 'password', identification: credentials.identification, password: credentials.password }
}).then(function(response) {
resolve({ token: response.token, userId: response.user.id });
}, function(xhr, status, error) {
reject(xhr.responseText);
});
});
},
// invalidate: function() {
// return Ember.RSVP.Promise.resolve();
// }
});
import BaseAuthorizer from 'simple-auth/authorizers/base';
var FlarumAuthorizer = BaseAuthorizer.extend({
});
App.initializer({
name: 'authentication',
initialize: function(container, application) {
container.register('authenticator:flarum', FlarumAuthenticator);
container.register('authorizer:flarum', FlarumAuthorizer);
// customize the session so that it allows access to the account object
Ember.SimpleAuth.Session.reopen({
user: function() {
var userId = this.get('userId');
if (!userId) return;
return container.lookup('store:main').find('user', userId);
}.property('userId')
});
Ember.SimpleAuth.setup(container, application, {
authorizerFactory: 'authorizer:flarum',
routeAfterAuthentication: 'discussions'
});
}
});
*/
export default App;