64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
import Ember from 'ember';
|
|
|
|
export default Ember.Object.extend({
|
|
state: 'signed-out',
|
|
|
|
// I want to disable auto sign in for tests for now, the plan is to either
|
|
// explicitly say that you're signed in or out (the latter being the default)
|
|
autoSignIn() {},
|
|
signOutForTests() {
|
|
this.set('state', 'signed-out');
|
|
return this.set('currentUser', null);
|
|
},
|
|
|
|
signInForTests(user) {
|
|
this.set('state', 'signed-in');
|
|
if ((user.constructor.typeKey != null) !== 'user') {
|
|
this.store.push({
|
|
data: {
|
|
type: 'user',
|
|
id: user.id,
|
|
attributes: user
|
|
}
|
|
});
|
|
user = this.store.recordForId('user', user.id);
|
|
}
|
|
return this.set('currentUser', user);
|
|
},
|
|
|
|
// TODO: we use these properties in templates, but there
|
|
// really should be something like a 'session' service that can be
|
|
// injected where we need it
|
|
userName: function() {
|
|
return this.get('currentUser.name') || this.get('currentUser.login');
|
|
}.property('currentUser.login', 'currentUser.name'),
|
|
|
|
gravatarUrl: function() {
|
|
return location.protocol + "//www.gravatar.com/avatar/" + (this.get('currentUser.gravatarId')) + "?s=48&d=mm";
|
|
}.property('currentUser.gravatarId'),
|
|
|
|
permissions: Ember.computed.alias('currentUser.permissions'),
|
|
|
|
signedIn: function() {
|
|
return this.get('state') === 'signed-in';
|
|
}.property('state'),
|
|
|
|
signedOut: function() {
|
|
return this.get('state') === 'signed-out';
|
|
}.property('state'),
|
|
|
|
signingIn: function() {
|
|
return this.get('state') === 'signing-in';
|
|
}.property('state'),
|
|
|
|
token() {
|
|
if (this.get('state') === 'signed-in') {
|
|
return 'a-token';
|
|
}
|
|
},
|
|
|
|
refreshUserData() {
|
|
return Ember.RSVP.Promise.resolve();
|
|
}
|
|
});
|