hino / app / services / session-account.js
session-account.js
Raw
import RSVP from 'rsvp';
import Service, { inject as service } from '@ember/service';
import { isEmpty } from '@ember/utils';

export default Service.extend({
  session: service('session'),
  store: service(),
  privilegeInfoData: service(),
  fcm: service(),

  loadCurrentUser() {
    return new RSVP.Promise((resolve, reject) => {
		const accessToken = this.get('session.data.authenticated.access_token');
		if(!isEmpty(accessToken)) {
			return this.store.queryRecord('core-user', {
				me: true,
				include: 'core-tenant,core-locale,core-user-group,core-privilege-info,user-managements,fcm-tokens'
			}).then(user => {
				this.set('currentUser', user);
				let userGroupId = user.get("coreUserGroup").get("id");
				if (userGroupId != null && userGroupId != undefined) {
					let filter = '{ "group_id" : " ' + userGroupId + '"}';
					filter = JSON.parse(filter);
					let privilegeInfo = this.privilegeInfoData.getList({
						include: 'core-user-group,core-function-info',
						filter:filter
					});
					this.set('currentPrivilegeInfo', privilegeInfo);
				}
				this.fcm.registerToken(user);
				resolve();
			}, reject);
		}

		resolve();
    });
  },
});