|
|
@@ -25,6 +25,7 @@ Ext.define('saas.view.auth.ReLoginController', {
|
|
|
var me = this,
|
|
|
view = me.getView(),
|
|
|
viewModel = me.getViewModel(),
|
|
|
+ companyId = saas.util.BaseUtil.getCurrentUser().companyId,
|
|
|
form = me.lookup('reloginform'),
|
|
|
values = form.getValues();
|
|
|
|
|
|
@@ -34,57 +35,37 @@ Ext.define('saas.view.auth.ReLoginController', {
|
|
|
|
|
|
view.mask('请稍等...');
|
|
|
|
|
|
- saas.model.Session.login(values.username, values.password)
|
|
|
+ saas.model.Session.login(values.username, values.password, companyId)
|
|
|
.then(function (session) {
|
|
|
view.isMasked() && view.unmask();
|
|
|
viewModel.set('session', session);
|
|
|
+
|
|
|
+ session.get('account').companyId = companyId;
|
|
|
|
|
|
- var cos = session.get("account").companies;
|
|
|
- if (cos && cos.length) {
|
|
|
- if (cos.length == 1) {
|
|
|
- session.get('account').companyId = cos[0].id;
|
|
|
- me.fireEvent('login', session);
|
|
|
- } else {
|
|
|
- Ext.create({
|
|
|
- xtype: 'companypicker',
|
|
|
- viewModel: {
|
|
|
- stores: {
|
|
|
- companies: Ext.create('saas.store.Company', {
|
|
|
- data: cos
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- } else {
|
|
|
- me.fireEvent('login', session);
|
|
|
- }
|
|
|
me.successReLogin();
|
|
|
+ me.fireEvent('login', session);
|
|
|
+ return session;
|
|
|
})
|
|
|
- .then(function() {
|
|
|
- let account = viewModel.get('account'),
|
|
|
- companyId = account.companyId;
|
|
|
- return saas.util.BaseUtil.request({
|
|
|
- url: '/api/auth/switch/company',
|
|
|
- params: {
|
|
|
- companyId: companyId
|
|
|
- },
|
|
|
- method: 'GET'
|
|
|
- }).then(function(res) {
|
|
|
- if (res.success) {
|
|
|
- var newSession = saas.model.Session.loadData(res.data);
|
|
|
- newSession.set('account', account);
|
|
|
- // 服务端与本地存在时间差
|
|
|
- newSession.set('span', newSession.get('timestamp') - new Date().getTime());
|
|
|
- if (!newSession.isValid()) {
|
|
|
- throw new Error('切换失败,无效身份令牌');
|
|
|
- } else {
|
|
|
- return newSession;
|
|
|
- }
|
|
|
- } else {
|
|
|
- Ext.log.error('request failure with code: ', res.code, ', message: ', res.message);
|
|
|
- }
|
|
|
- });
|
|
|
+ .then(function(session) {
|
|
|
+ let headers = Ext.Ajax.getDefaultHeaders() || {};
|
|
|
+
|
|
|
+ headers['Authorization'] = session.data.token;
|
|
|
+ Ext.Ajax.setDefaultHeaders(headers);
|
|
|
+
|
|
|
+ saas.util.State.set('session', session.data);
|
|
|
+
|
|
|
+ let sessionStr = session.data ? JSON.stringify(session.data) : '';
|
|
|
+
|
|
|
+ if (typeof require === 'function') {
|
|
|
+ let ipc = require('electron').ipcRenderer;
|
|
|
+ ipc.send('session.change', sessionStr);
|
|
|
+ }else {
|
|
|
+ //解析session 把data作为sessionStr
|
|
|
+ sessionStr = session ? JSON.stringify(session.data) : '';
|
|
|
+ const frame = window.frames[window.frames.length - 1];
|
|
|
+ frame.postMessage(sessionStr, '*');
|
|
|
+ }
|
|
|
+ return session;
|
|
|
})
|
|
|
.catch(function (error) {
|
|
|
view.isMasked() && view.unmask();
|