diff --git a/package.json b/package.json
index a3d8862..bddab84 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,6 @@
"axios": "^0.21.1",
"craco-less": "^1.17.1",
"graphql": "^15.5.0",
- "js-cookie": "^2.2.1",
"lodash": "^4.17.21",
"luxon": "^1.26.0",
"mobx": "^6.1.8",
diff --git a/src/client/Containers/Calculation/lib/fetchData/getUser.js b/src/client/Containers/Calculation/lib/fetchData/getUser.js
new file mode 100644
index 0000000..192a6a8
--- /dev/null
+++ b/src/client/Containers/Calculation/lib/fetchData/getUser.js
@@ -0,0 +1,27 @@
+import UserStore from 'client/stores/UserStore';
+import UserService from 'core/services/UserService';
+
+function getUserFromLocalStorage() {
+ const user = ['username', 'domain'].reduce((acc, propName) => {
+ let prop = localStorage.getItem(propName);
+ if (!prop) {
+ prop = prompt('Enter ' + propName);
+ localStorage.setItem(propName, prop);
+ }
+ acc[propName] = prop;
+ return acc;
+ }, {});
+ return user;
+}
+
+export default () =>
+ new Promise(async resolve => {
+ let user;
+ if (process.env.NODE_ENV === 'development') {
+ user = getUserFromLocalStorage();
+ } else {
+ user = await UserService.fetchUser();
+ }
+ UserStore.setUser(user);
+ resolve();
+ });
diff --git a/src/client/Containers/Calculation/lib/fetchData/index.js b/src/client/Containers/Calculation/lib/fetchData/index.js
index 5f4bcd6..2c1393a 100644
--- a/src/client/Containers/Calculation/lib/fetchData/index.js
+++ b/src/client/Containers/Calculation/lib/fetchData/index.js
@@ -1,6 +1,7 @@
-import CrmService from 'core/services/CrmService';
import CalculationStore from 'client/stores/CalculationStore';
-import { getUser } from 'core/tools/user';
+import UserStore from 'client/stores/UserStore';
+import CrmService from 'core/services/CrmService';
+import getUser from './getUser';
import insuranceQuery from './queries/insuranceQuery';
import optionsQuery from './queries/optionsQuery';
import initialOwnerQuery from './queries/ownerQuery';
@@ -8,8 +9,9 @@ import staticDataQuery from './queries/staticDataQuery';
import systemUserQuery from './queries/systemUserQuery';
export default () =>
- new Promise((resolve, reject) => {
- const { domainname } = getUser();
+ new Promise(async (resolve, reject) => {
+ await getUser();
+ const domainname = UserStore.getDomainName();
Promise.all([
CrmService.crmgqlquery({
diff --git a/src/client/Layout/Auth.jsx b/src/client/Layout/Auth.jsx
index 5595136..23c31c4 100644
--- a/src/client/Layout/Auth.jsx
+++ b/src/client/Layout/Auth.jsx
@@ -1,8 +1,9 @@
-import Cookies from 'js-cookie';
-import styled from 'styled-components';
-import mq from 'client/UIKit/mq';
-import { Flex } from 'client/UIKit/grid';
+import { useStores } from 'client/hooks/useStores';
import colors from 'client/UIKit/colors';
+import { Flex } from 'client/UIKit/grid';
+import mq from 'client/UIKit/mq';
+import { observer } from 'mobx-react-lite';
+import styled from 'styled-components';
const UserText = styled.span`
margin: 0;
@@ -17,10 +18,17 @@ const UserText = styled.span`
`}
`;
-const User = () => {
- const displayname = Cookies.get('displayname');
- return {displayname};
-};
+const User = observer(() => {
+ const { userStore } = useStores();
+ let userInfo;
+ if (userStore.user) {
+ userInfo =
+ process.env.NODE_ENV === 'development'
+ ? userStore.getDomainName()
+ : userStore.user.displayName;
+ }
+ return {userInfo};
+});
const Logout = styled.a`
margin: 0;
diff --git a/src/client/stores/CalculationStore/Effects/actions/createKP.js b/src/client/stores/CalculationStore/Effects/actions/createKP.js
index af0f8fa..4d88b12 100644
--- a/src/client/stores/CalculationStore/Effects/actions/createKP.js
+++ b/src/client/stores/CalculationStore/Effects/actions/createKP.js
@@ -1,9 +1,9 @@
import { gql } from '@apollo/client';
import { message } from 'antd';
import { openNotification } from 'client/Elements/Notification';
-import CrmService from 'core/services/CrmService';
-import { getUser } from 'core/tools/user';
+import UserStore from 'client/stores/UserStore';
import { CRM_PROXY_URL } from 'core/constants/urls';
+import CrmService from 'core/services/CrmService';
import { toJS } from 'mobx';
import CalculationStore, { calculationUrls } from '../..';
import customValues from '../lib/customValues';
@@ -35,7 +35,7 @@ export default async () => {
preparedPayments,
} = calculationRes;
- const { domainname } = getUser();
+ const domainname = UserStore.getDomainName();
// if (process.env.NODE_ENV === 'development') {
console.log('domainname', domainname);
console.log('values', values);
diff --git a/src/client/stores/UserStore/index.js b/src/client/stores/UserStore/index.js
new file mode 100644
index 0000000..901f912
--- /dev/null
+++ b/src/client/stores/UserStore/index.js
@@ -0,0 +1,14 @@
+import { makeAutoObservable } from 'mobx';
+
+const UserStore = makeAutoObservable({
+ user: undefined,
+ setUser(user) {
+ this.user = user;
+ },
+ getDomainName() {
+ const { username, domain } = this.user;
+ return `${domain}\\${username}`;
+ },
+});
+
+export default UserStore;
diff --git a/src/client/stores/index.js b/src/client/stores/index.js
index d19aa04..b867cbd 100644
--- a/src/client/stores/index.js
+++ b/src/client/stores/index.js
@@ -2,12 +2,14 @@ import CalculationStore, {
calculationProcess,
calculationUrls,
} from './CalculationStore';
+import UserStore from './UserStore';
class RootStore {
constructor() {
this.calculationStore = CalculationStore;
this.calculationProcess = calculationProcess;
this.calculationUrls = calculationUrls;
+ this.userStore = UserStore;
}
}
diff --git a/src/core/constants/urls.js b/src/core/constants/urls.js
index 8d15417..4c1c384 100644
--- a/src/core/constants/urls.js
+++ b/src/core/constants/urls.js
@@ -1,2 +1,3 @@
export const CRM_PROXY_URL = '/crmgraphql';
export const CORE_PROXY_URL = '/core';
+export const AUTH_PROXY_URL = '/auth-srv';
diff --git a/src/core/services/UserService/index.js b/src/core/services/UserService/index.js
new file mode 100644
index 0000000..0b24af0
--- /dev/null
+++ b/src/core/services/UserService/index.js
@@ -0,0 +1,16 @@
+import axios from 'axios';
+import { AUTH_PROXY_URL } from 'core/constants/urls';
+
+export default class {
+ static fetchUser = () =>
+ new Promise((resolve, reject) => {
+ axios
+ .get(String.prototype.concat(AUTH_PROXY_URL, '/user'))
+ .then(res => {
+ resolve(res.data);
+ })
+ .catch(err => {
+ reject(err);
+ });
+ });
+}
diff --git a/src/core/tools/user.ts b/src/core/tools/user.ts
deleted file mode 100644
index 1dd479d..0000000
--- a/src/core/tools/user.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { User } from 'core/types/user';
-import Cookies from 'js-cookie';
-
-export const getUser = (): User => {
- let { username, domain } = Cookies.get();
-
- if (process.env.NODE_ENV === 'development') {
- if (!username || !domain) {
- username = prompt('Enter username');
- domain = prompt('Enter domain');
- if (username && domain) {
- Cookies.set('username', username);
- Cookies.set('domain', domain);
- }
- }
- }
- const user: User = {
- username,
- domain,
- domainname: `${domain}\\${username}`,
- };
- return user;
-};