51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
import Ember from 'ember';
|
|
import SessionService from 'ember-simple-auth/services/session';
|
|
|
|
const {
|
|
observer,
|
|
} = Ember;
|
|
|
|
export default SessionService.extend({
|
|
/*
|
|
* Services
|
|
*/
|
|
dataStore: Ember.inject.service('store'),
|
|
|
|
userId: Ember.computed.alias('session.authenticated.user_id'),
|
|
email: Ember.computed.alias('session.authenticated.email'),
|
|
token: Ember.computed.alias('session.authenticated.token'),
|
|
|
|
settings: Ember.computed.alias('session.authenticated.settings'),
|
|
|
|
notificationChannel: Ember.computed.alias('settings.notificationChannel'),
|
|
|
|
discourseUrl: Ember.computed.alias('settings.discourseUrl'),
|
|
discourseEnabled: Ember.computed.alias('settings.discourseEnabled'),
|
|
|
|
currentUser: Ember.computed('isAuthenticated', function() {
|
|
if (this.get('isAuthenticated')) {
|
|
return this.get('dataStore').find('user', this.get('session.authenticated.user_id'));
|
|
} else {
|
|
return null;
|
|
}
|
|
}),
|
|
|
|
fullStoryInitialized: false,
|
|
|
|
isMobileDevice: Ember.computed(function() {
|
|
return /iPad|iPhone|iPod|Android/.test(navigator.userAgent);
|
|
}),
|
|
|
|
actualUser: null,
|
|
|
|
actualUserObserver: observer('isAuthenticated', function() {
|
|
if (this.get('isAuthenticated')) {
|
|
this.get('dataStore').find('user', this.get('session.authenticated.user_id')).then((user) => {
|
|
this.set('actualUser', user);
|
|
});
|
|
} else {
|
|
this.set('actualUser', null);
|
|
}
|
|
}),
|
|
});
|