@dexteel/mesf-core 5.6.3 → 5.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +28 -0
- package/dist/configuration/pages/users/components/common/AssetSelector.d.ts +8 -0
- package/dist/configuration/pages/users/models/User.d.ts +1 -0
- package/dist/index.esm.js +415 -367
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1857,9 +1857,11 @@ var ShiftPeriodNavigatorControl = function (_a) {
|
|
|
1857
1857
|
React__default.createElement(IconButton$1, { size: "small", color: "primary", disabled: loadingShiftPeriodList || isCustomMode, onClick: function () { return handleArrowNavigation("prev"); } },
|
|
1858
1858
|
React__default.createElement(ChevronLeft, null))),
|
|
1859
1859
|
React__default.createElement("div", { className: "".concat(classes.gridItem, " ").concat(classes.datePickerWrapper) },
|
|
1860
|
-
React__default.createElement(DatePicker$1, { label: "Start", format: dateFormat, value:
|
|
1860
|
+
React__default.createElement(DatePicker$1, { label: "Start", format: dateFormat, value: isCustomMode
|
|
1861
|
+
? customStartDate || moment$2().subtract(1, "day")
|
|
1862
|
+
: moment$2((startShift === null || startShift === void 0 ? void 0 : startShift.Start) || moment$2().subtract(1, "day")), onChange: function (value) {
|
|
1861
1863
|
return handleDateChange(value ? moment$2(value) : null, "start");
|
|
1862
|
-
}, disabled: loadingShiftPeriodList, enableAccessibleFieldDOMStructure: false, slots: {
|
|
1864
|
+
}, disabled: loadingShiftPeriodList, maxDate: isCustomMode ? moment$2() : undefined, enableAccessibleFieldDOMStructure: false, slots: {
|
|
1863
1865
|
textField: function (props) { return (React__default.createElement(TextField, __assign({}, props, { size: "small", variant: "outlined", fullWidth: true, style: { width: "100%" }, InputProps: __assign(__assign({}, props.InputProps), { style: { paddingTop: "2px" } }) }))); },
|
|
1864
1866
|
openPickerIcon: function () { return (React__default.createElement("div", { style: {
|
|
1865
1867
|
display: "flex",
|
|
@@ -1877,9 +1879,11 @@ var ShiftPeriodNavigatorControl = function (_a) {
|
|
|
1877
1879
|
width: "100%",
|
|
1878
1880
|
} }, periodOptions.map(function (option) { return (React__default.createElement(MenuItem, { key: option.value, value: option.value }, option.label)); })))),
|
|
1879
1881
|
React__default.createElement("div", { className: "".concat(classes.gridItem, " ").concat(classes.datePickerWrapper) },
|
|
1880
|
-
React__default.createElement(DatePicker$1, { label: "End", format: dateFormat, value:
|
|
1882
|
+
React__default.createElement(DatePicker$1, { label: "End", format: dateFormat, value: isCustomMode
|
|
1883
|
+
? customEndDate || moment$2()
|
|
1884
|
+
: moment$2((endShift === null || endShift === void 0 ? void 0 : endShift.End) || (endShift === null || endShift === void 0 ? void 0 : endShift.Start) || moment$2()), onChange: function (value) {
|
|
1881
1885
|
return handleDateChange(value ? moment$2(value) : null, "end");
|
|
1882
|
-
}, disabled: loadingShiftPeriodList, enableAccessibleFieldDOMStructure: false, slots: {
|
|
1886
|
+
}, disabled: loadingShiftPeriodList, minDate: isCustomMode && customStartDate ? customStartDate : undefined, maxDate: isCustomMode ? moment$2() : undefined, enableAccessibleFieldDOMStructure: false, slots: {
|
|
1883
1887
|
textField: function (props) { return (React__default.createElement(TextField, __assign({}, props, { size: "small", variant: "outlined", fullWidth: true, style: { width: "100%" }, InputProps: __assign(__assign({}, props.InputProps), { style: { paddingTop: "2px" } }) }))); },
|
|
1884
1888
|
openPickerIcon: function () { return (React__default.createElement("div", { style: {
|
|
1885
1889
|
display: "flex",
|
|
@@ -6916,7 +6920,6 @@ var deleteUser = function (userId) { return __awaiter(void 0, void 0, void 0, fu
|
|
|
6916
6920
|
}
|
|
6917
6921
|
});
|
|
6918
6922
|
}); };
|
|
6919
|
-
// inserta una nueva fila o actualiza una fila existente
|
|
6920
6923
|
var setPassword = function (userId, password) { return __awaiter(void 0, void 0, void 0, function () {
|
|
6921
6924
|
var apiService, resp, e_1;
|
|
6922
6925
|
return __generator(this, function (_a) {
|
|
@@ -6953,6 +6956,7 @@ var upsertUser = function (user) { return __awaiter(void 0, void 0, void 0, func
|
|
|
6953
6956
|
parameters.push({ name: "LastName", value: user.LastName });
|
|
6954
6957
|
parameters.push({ name: "AuthTypeId", value: user.AuthTypeId });
|
|
6955
6958
|
parameters.push({ name: "IsActive", value: user.IsActive });
|
|
6959
|
+
parameters.push({ name: "DefaultAssetId", value: user.DefaultAssetId });
|
|
6956
6960
|
return [4 /*yield*/, apiService.callV2("[SEC].[UpsertUser]", parameters)];
|
|
6957
6961
|
case 1:
|
|
6958
6962
|
resp = _a.sent();
|
|
@@ -7061,10 +7065,24 @@ var INITIAL_VALUES$1 = {
|
|
|
7061
7065
|
AuthTypeId: 1,
|
|
7062
7066
|
IsActive: true,
|
|
7063
7067
|
LastLogin: null,
|
|
7068
|
+
DefaultAssetId: null,
|
|
7064
7069
|
ProfilesId: [],
|
|
7065
7070
|
Profiles: [],
|
|
7066
7071
|
};
|
|
7067
7072
|
|
|
7073
|
+
var AssetSelector = function (_a) {
|
|
7074
|
+
var value = _a.value, onChange = _a.onChange, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
|
|
7075
|
+
var areasList = useAssetContext().state.areasList;
|
|
7076
|
+
return (React__default.createElement(FormControl, { variant: "outlined", fullWidth: true, margin: "dense", disabled: disabled },
|
|
7077
|
+
React__default.createElement(InputLabel, null, "Default Asset"),
|
|
7078
|
+
React__default.createElement(Select, { value: value || "", onChange: function (e) {
|
|
7079
|
+
return onChange(e.target.value ? Number(e.target.value) : null);
|
|
7080
|
+
}, label: "Default Asset" },
|
|
7081
|
+
React__default.createElement(MenuItem, { value: "" },
|
|
7082
|
+
React__default.createElement("em", null, "None")),
|
|
7083
|
+
areasList.map(function (area) { return (React__default.createElement(MenuItem, { key: area === null || area === void 0 ? void 0 : area.AssetId, value: area === null || area === void 0 ? void 0 : area.AssetId }, area === null || area === void 0 ? void 0 : area.AssetName)); }))));
|
|
7084
|
+
};
|
|
7085
|
+
|
|
7068
7086
|
var useStyles$i = makeStyles(function (theme) { return ({
|
|
7069
7087
|
root: {
|
|
7070
7088
|
"& .MuiSelect-select": {
|
|
@@ -7311,6 +7329,11 @@ var CreateUser = function (_a) {
|
|
|
7311
7329
|
var _b = _a.field, value = _b.value, onChange = _b.onChange;
|
|
7312
7330
|
return (React.createElement(AuthTypeSelector, { value: value, onChange: onChange }));
|
|
7313
7331
|
} })),
|
|
7332
|
+
React.createElement(Grid, { item: true, xs: 12, md: 6 },
|
|
7333
|
+
React.createElement(Controller, { name: "DefaultAssetId", control: control, render: function (_a) {
|
|
7334
|
+
var _b = _a.field, value = _b.value, onChange = _b.onChange;
|
|
7335
|
+
return (React.createElement(AssetSelector, { value: value, onChange: onChange }));
|
|
7336
|
+
} })),
|
|
7314
7337
|
React.createElement(Grid, { item: true, xs: 12, md: 6, style: { marginTop: "5px" } },
|
|
7315
7338
|
React.createElement(Controller, { name: "IsActive", control: control, render: function (_a) {
|
|
7316
7339
|
var field = _a.field;
|
|
@@ -7394,6 +7417,7 @@ var DeleteUser = function (_a) {
|
|
|
7394
7417
|
setValue("AuthTypeId", userSelected.AuthTypeId);
|
|
7395
7418
|
setValue("IsActive", userSelected.IsActive);
|
|
7396
7419
|
setValue("LastLogin", userSelected.LastLogin);
|
|
7420
|
+
setValue("DefaultAssetId", userSelected.DefaultAssetId);
|
|
7397
7421
|
setValue("ProfilesId", profilesIds.map(function (pId) { return parseInt(pId); }));
|
|
7398
7422
|
setIsLoading(false);
|
|
7399
7423
|
}
|
|
@@ -7431,6 +7455,11 @@ var DeleteUser = function (_a) {
|
|
|
7431
7455
|
var _b = _a.field, value = _b.value, onChange = _b.onChange;
|
|
7432
7456
|
return (React__default.createElement(AuthTypeSelector, { value: value, onChange: onChange, disabled: true }));
|
|
7433
7457
|
} })),
|
|
7458
|
+
React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
|
|
7459
|
+
React__default.createElement(Controller, { name: "DefaultAssetId", control: control, render: function (_a) {
|
|
7460
|
+
var _b = _a.field, value = _b.value, onChange = _b.onChange;
|
|
7461
|
+
return (React__default.createElement(AssetSelector, { value: value, onChange: onChange, disabled: true }));
|
|
7462
|
+
} })),
|
|
7434
7463
|
React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
|
|
7435
7464
|
React__default.createElement(Controller, { name: "IsActive", control: control, render: function (_a) {
|
|
7436
7465
|
var field = _a.field;
|
|
@@ -7453,6 +7482,309 @@ var DeleteUser = function (_a) {
|
|
|
7453
7482
|
React__default.createElement(ErrorModal, { error: profileError, onHide: function () { return setprofileError(""); }, title: "Error Choosing Profile" })));
|
|
7454
7483
|
};
|
|
7455
7484
|
|
|
7485
|
+
var _a;
|
|
7486
|
+
var base$2 = document.getElementsByTagName("base")[0].getAttribute("href") || "/";
|
|
7487
|
+
function renewToken() {
|
|
7488
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
7489
|
+
var refreshToken, config, fd, response, token;
|
|
7490
|
+
return __generator(this, function (_a) {
|
|
7491
|
+
switch (_a.label) {
|
|
7492
|
+
case 0:
|
|
7493
|
+
refreshToken = localStorage.getItem("refreshToken");
|
|
7494
|
+
if (!refreshToken) {
|
|
7495
|
+
throw new Error("refresh token does not exist");
|
|
7496
|
+
}
|
|
7497
|
+
config = new Configuration$1();
|
|
7498
|
+
fd = new FormData();
|
|
7499
|
+
fd.append("refreshToken", refreshToken);
|
|
7500
|
+
return [4 /*yield*/, axios.post("".concat(config.API_AUTH_URL, "/refresh"), fd, {
|
|
7501
|
+
headers: {
|
|
7502
|
+
"Content-Type": "application/json",
|
|
7503
|
+
},
|
|
7504
|
+
params: {
|
|
7505
|
+
refreshToken: refreshToken,
|
|
7506
|
+
},
|
|
7507
|
+
})];
|
|
7508
|
+
case 1:
|
|
7509
|
+
response = _a.sent();
|
|
7510
|
+
token = response.data.result;
|
|
7511
|
+
if (token) {
|
|
7512
|
+
return [2 /*return*/, [token, refreshToken]];
|
|
7513
|
+
}
|
|
7514
|
+
else {
|
|
7515
|
+
throw new Error("Token is not valid");
|
|
7516
|
+
}
|
|
7517
|
+
}
|
|
7518
|
+
});
|
|
7519
|
+
});
|
|
7520
|
+
}
|
|
7521
|
+
function isUnauthorizedError(error) {
|
|
7522
|
+
var status = error.response.status;
|
|
7523
|
+
return status === 499 || status === 499; // custom status code
|
|
7524
|
+
}
|
|
7525
|
+
var axiosInstance = axios.create({
|
|
7526
|
+
headers: {
|
|
7527
|
+
Authorization: "Bearer ".concat((_a = localStorage.getItem("token")) !== null && _a !== void 0 ? _a : ""),
|
|
7528
|
+
},
|
|
7529
|
+
});
|
|
7530
|
+
var refreshingFunc;
|
|
7531
|
+
axiosInstance.interceptors.response.use(function (res) { return res; }, function (error) { return __awaiter(void 0, void 0, void 0, function () {
|
|
7532
|
+
var originalConfig, token, _a, newToken, newRefreshToken, innerError_1, err_1;
|
|
7533
|
+
return __generator(this, function (_b) {
|
|
7534
|
+
switch (_b.label) {
|
|
7535
|
+
case 0:
|
|
7536
|
+
originalConfig = error.config;
|
|
7537
|
+
if (originalConfig.headers.MESF_Retries === 1) {
|
|
7538
|
+
localStorage.removeItem("token");
|
|
7539
|
+
localStorage.removeItem("refreshToken");
|
|
7540
|
+
window.location.href = "".concat(base$2, "logout?message=Session%20expired&redirectTo=").concat(window.location.href);
|
|
7541
|
+
return [2 /*return*/, Promise.reject(error)];
|
|
7542
|
+
}
|
|
7543
|
+
token = getTokenFromLS();
|
|
7544
|
+
if (!token || !isUnauthorizedError(error)) {
|
|
7545
|
+
return [2 /*return*/, Promise.reject(error)];
|
|
7546
|
+
}
|
|
7547
|
+
_b.label = 1;
|
|
7548
|
+
case 1:
|
|
7549
|
+
_b.trys.push([1, 7, 8, 9]);
|
|
7550
|
+
if (!refreshingFunc)
|
|
7551
|
+
refreshingFunc = renewToken();
|
|
7552
|
+
return [4 /*yield*/, refreshingFunc];
|
|
7553
|
+
case 2:
|
|
7554
|
+
_a = _b.sent(), newToken = _a[0], newRefreshToken = _a[1];
|
|
7555
|
+
localStorage.setItem("token", newToken);
|
|
7556
|
+
localStorage.setItem("refreshToken", newRefreshToken);
|
|
7557
|
+
axiosInstance.defaults.headers.Authorization = "Bearer ".concat(newToken);
|
|
7558
|
+
originalConfig.headers.Authorization = "Bearer ".concat(newToken);
|
|
7559
|
+
originalConfig.headers.MESF_Retries = 1;
|
|
7560
|
+
_b.label = 3;
|
|
7561
|
+
case 3:
|
|
7562
|
+
_b.trys.push([3, 5, , 6]);
|
|
7563
|
+
return [4 /*yield*/, axios.request(originalConfig)];
|
|
7564
|
+
case 4: return [2 /*return*/, _b.sent()];
|
|
7565
|
+
case 5:
|
|
7566
|
+
innerError_1 = _b.sent();
|
|
7567
|
+
if (isUnauthorizedError(innerError_1)) {
|
|
7568
|
+
return [2 /*return*/, Promise.reject(innerError_1)];
|
|
7569
|
+
}
|
|
7570
|
+
return [2 /*return*/, Promise.reject(innerError_1)];
|
|
7571
|
+
case 6: return [3 /*break*/, 9];
|
|
7572
|
+
case 7:
|
|
7573
|
+
err_1 = _b.sent();
|
|
7574
|
+
localStorage.removeItem("token");
|
|
7575
|
+
localStorage.removeItem("refreshToken");
|
|
7576
|
+
window.location.href = "".concat(base$2, "logout?message=Session%20expired&redirectTo=").concat(window.location.href);
|
|
7577
|
+
return [2 /*return*/, Promise.reject(err_1)];
|
|
7578
|
+
case 8:
|
|
7579
|
+
refreshingFunc = undefined;
|
|
7580
|
+
return [7 /*endfinally*/];
|
|
7581
|
+
case 9: return [2 /*return*/];
|
|
7582
|
+
}
|
|
7583
|
+
});
|
|
7584
|
+
}); });
|
|
7585
|
+
|
|
7586
|
+
var useMesfRealtime = function (_a) {
|
|
7587
|
+
var onReceiveMessage = _a.onReceiveMessage;
|
|
7588
|
+
useEffect(function () {
|
|
7589
|
+
var connection = new HubConnectionBuilder()
|
|
7590
|
+
.withUrl("/ws")
|
|
7591
|
+
.withAutomaticReconnect()
|
|
7592
|
+
.configureLogging(LogLevel.Information)
|
|
7593
|
+
.build();
|
|
7594
|
+
connection
|
|
7595
|
+
.start()
|
|
7596
|
+
.then(function () {
|
|
7597
|
+
console.log("Connection started");
|
|
7598
|
+
})
|
|
7599
|
+
.catch(function (err) {
|
|
7600
|
+
console.log("Error while starting connection: " + err);
|
|
7601
|
+
});
|
|
7602
|
+
connection.on("ReceiveMessage", function (author, message) {
|
|
7603
|
+
onReceiveMessage(author, message);
|
|
7604
|
+
});
|
|
7605
|
+
return function () {
|
|
7606
|
+
connection
|
|
7607
|
+
.stop()
|
|
7608
|
+
.then(function () {
|
|
7609
|
+
console.log("Connection stopped");
|
|
7610
|
+
})
|
|
7611
|
+
.catch(function (err) {
|
|
7612
|
+
console.log("Error while stopping connection: " + err);
|
|
7613
|
+
});
|
|
7614
|
+
};
|
|
7615
|
+
}, []);
|
|
7616
|
+
};
|
|
7617
|
+
|
|
7618
|
+
var UserInitialState = {
|
|
7619
|
+
userLastName: "",
|
|
7620
|
+
userId: null,
|
|
7621
|
+
defaultAreaId: null,
|
|
7622
|
+
defaultAreaName: "",
|
|
7623
|
+
userLogged: false,
|
|
7624
|
+
permissions: [],
|
|
7625
|
+
};
|
|
7626
|
+
var UserReducer = createSlice({
|
|
7627
|
+
name: "__",
|
|
7628
|
+
initialState: UserInitialState,
|
|
7629
|
+
reducers: {
|
|
7630
|
+
setUserId: function (state, _a) {
|
|
7631
|
+
var payload = _a.payload;
|
|
7632
|
+
state.userId = payload;
|
|
7633
|
+
},
|
|
7634
|
+
setUserLastName: function (state, _a) {
|
|
7635
|
+
var payload = _a.payload;
|
|
7636
|
+
state.userLastName = payload;
|
|
7637
|
+
},
|
|
7638
|
+
setDefaultAreaId: function (state, _a) {
|
|
7639
|
+
var payload = _a.payload;
|
|
7640
|
+
state.defaultAreaId = payload;
|
|
7641
|
+
},
|
|
7642
|
+
setDefaultAreaName: function (state, _a) {
|
|
7643
|
+
var payload = _a.payload;
|
|
7644
|
+
state.defaultAreaName = payload;
|
|
7645
|
+
},
|
|
7646
|
+
setUserLogged: function (state, _a) {
|
|
7647
|
+
var payload = _a.payload;
|
|
7648
|
+
state.userLogged = payload;
|
|
7649
|
+
},
|
|
7650
|
+
setPermissions: function (state, _a) {
|
|
7651
|
+
var payload = _a.payload;
|
|
7652
|
+
state.permissions = payload;
|
|
7653
|
+
},
|
|
7654
|
+
},
|
|
7655
|
+
});
|
|
7656
|
+
|
|
7657
|
+
var UserContext = createContext({
|
|
7658
|
+
state: UserReducer.getInitialState(),
|
|
7659
|
+
actions: UserReducer.actions,
|
|
7660
|
+
isLoading: true,
|
|
7661
|
+
});
|
|
7662
|
+
var useUserContext = function () { return useContext(UserContext); };
|
|
7663
|
+
var useHasPermission = function () {
|
|
7664
|
+
var state = useUserContext().state;
|
|
7665
|
+
return function (permission) {
|
|
7666
|
+
return state.permissions.some(function (p) { return p === permission; });
|
|
7667
|
+
};
|
|
7668
|
+
};
|
|
7669
|
+
var UserProvider = function (_a) {
|
|
7670
|
+
var children = _a.children;
|
|
7671
|
+
var _b = useComplexState({
|
|
7672
|
+
initialState: UserReducer.getInitialState(),
|
|
7673
|
+
reducers: UserReducer.caseReducers,
|
|
7674
|
+
}), state = _b[0], actions = _b[1];
|
|
7675
|
+
var _c = useState(false), permissionsLoaded = _c[0], setPermissionsLoaded = _c[1];
|
|
7676
|
+
var getUserId = function () {
|
|
7677
|
+
var sessionData = localStorage.getItem("userMESData") || "{}";
|
|
7678
|
+
var userData = JSON.parse(sessionData);
|
|
7679
|
+
return get(userData, "id", null);
|
|
7680
|
+
};
|
|
7681
|
+
var getUserPermissions = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
7682
|
+
var userId, resp, permissionsArray, error_1;
|
|
7683
|
+
return __generator(this, function (_a) {
|
|
7684
|
+
switch (_a.label) {
|
|
7685
|
+
case 0:
|
|
7686
|
+
userId = getUserId();
|
|
7687
|
+
if (!userId) return [3 /*break*/, 4];
|
|
7688
|
+
_a.label = 1;
|
|
7689
|
+
case 1:
|
|
7690
|
+
_a.trys.push([1, 3, , 4]);
|
|
7691
|
+
return [4 /*yield*/, getUserPermissionsFromAPI({
|
|
7692
|
+
UserId: userId,
|
|
7693
|
+
})];
|
|
7694
|
+
case 2:
|
|
7695
|
+
resp = (_a.sent());
|
|
7696
|
+
if (resp && resp.Permissions) {
|
|
7697
|
+
permissionsArray = resp.Permissions.split(",");
|
|
7698
|
+
actions.setPermissions(permissionsArray);
|
|
7699
|
+
setPermissionsLoaded(true);
|
|
7700
|
+
}
|
|
7701
|
+
return [3 /*break*/, 4];
|
|
7702
|
+
case 3:
|
|
7703
|
+
error_1 = _a.sent();
|
|
7704
|
+
console.error("Failed to load permissions:", error_1);
|
|
7705
|
+
return [3 /*break*/, 4];
|
|
7706
|
+
case 4: return [2 /*return*/];
|
|
7707
|
+
}
|
|
7708
|
+
});
|
|
7709
|
+
}); };
|
|
7710
|
+
var userId = getUserId();
|
|
7711
|
+
useEffect(function () {
|
|
7712
|
+
getUserPermissions();
|
|
7713
|
+
}, [userId]);
|
|
7714
|
+
useMesfRealtime({
|
|
7715
|
+
onReceiveMessage: function (author, message) {
|
|
7716
|
+
if (message === "SEC.GetPermissions") {
|
|
7717
|
+
getUserPermissions();
|
|
7718
|
+
}
|
|
7719
|
+
},
|
|
7720
|
+
});
|
|
7721
|
+
return (React__default.createElement(UserContext.Provider, { value: { state: state, actions: actions, isLoading: !permissionsLoaded } }, children));
|
|
7722
|
+
};
|
|
7723
|
+
|
|
7724
|
+
var getTokenFromLS = function () {
|
|
7725
|
+
return localStorage.getItem("token");
|
|
7726
|
+
};
|
|
7727
|
+
function useToken() {
|
|
7728
|
+
var setUserLogged = useUserContext().actions.setUserLogged;
|
|
7729
|
+
var _a = useState(getTokenFromLS()), token = _a[0], setToken = _a[1];
|
|
7730
|
+
var saveUserData = function (userToken) {
|
|
7731
|
+
localStorage.setItem("userMESData", JSON.stringify(userToken));
|
|
7732
|
+
localStorage.setItem("refreshToken", userToken["refreshToken"]);
|
|
7733
|
+
localStorage.setItem("token", userToken["token"]);
|
|
7734
|
+
setToken(userToken["token"]);
|
|
7735
|
+
axiosInstance.defaults.headers.Authorization = "Bearer ".concat(userToken["token"]);
|
|
7736
|
+
setUserLogged(true);
|
|
7737
|
+
};
|
|
7738
|
+
var clearUserData = function () {
|
|
7739
|
+
localStorage.removeItem("userMESData");
|
|
7740
|
+
localStorage.removeItem("token");
|
|
7741
|
+
localStorage.removeItem("refreshToken");
|
|
7742
|
+
setToken("");
|
|
7743
|
+
setUserLogged(false);
|
|
7744
|
+
};
|
|
7745
|
+
var getUserName = function () {
|
|
7746
|
+
var sessionData = localStorage.getItem("userMESData");
|
|
7747
|
+
var userData = JSON.parse(sessionData);
|
|
7748
|
+
return (((userData || {}).lastName || "") +
|
|
7749
|
+
", " +
|
|
7750
|
+
((userData || {}).firstName || ""));
|
|
7751
|
+
};
|
|
7752
|
+
var getFirstName = function () {
|
|
7753
|
+
var sessionData = localStorage.getItem("userMESData");
|
|
7754
|
+
var userData = JSON.parse(sessionData);
|
|
7755
|
+
return (userData || {}).firstName || "";
|
|
7756
|
+
};
|
|
7757
|
+
var getLastName = function () {
|
|
7758
|
+
var sessionData = localStorage.getItem("userMESData");
|
|
7759
|
+
var userData = JSON.parse(sessionData);
|
|
7760
|
+
return (userData || {}).lastName || "";
|
|
7761
|
+
};
|
|
7762
|
+
var getUserId = function () {
|
|
7763
|
+
var sessionData = localStorage.getItem("userMESData");
|
|
7764
|
+
var userData = JSON.parse(sessionData);
|
|
7765
|
+
setUserLogged(true);
|
|
7766
|
+
return (userData || {}).id || -1;
|
|
7767
|
+
};
|
|
7768
|
+
var hasPermission = function (permissionId) {
|
|
7769
|
+
var sessionData = localStorage.getItem("userMESData");
|
|
7770
|
+
if (sessionData === undefined)
|
|
7771
|
+
return false;
|
|
7772
|
+
var userData = JSON.parse(sessionData);
|
|
7773
|
+
var permissions = userData.permissions || [];
|
|
7774
|
+
return permissions.indexOf(permissionId) > -1; //case sensitve
|
|
7775
|
+
};
|
|
7776
|
+
return {
|
|
7777
|
+
getUserName: getUserName,
|
|
7778
|
+
saveUserData: saveUserData,
|
|
7779
|
+
clearUserData: clearUserData,
|
|
7780
|
+
getFirstName: getFirstName,
|
|
7781
|
+
getLastName: getLastName,
|
|
7782
|
+
getUserId: getUserId,
|
|
7783
|
+
hasPermission: hasPermission,
|
|
7784
|
+
token: token,
|
|
7785
|
+
};
|
|
7786
|
+
}
|
|
7787
|
+
|
|
7456
7788
|
var useStyles$f = makeStyles(function (theme) { return ({
|
|
7457
7789
|
checkbox: {
|
|
7458
7790
|
userSelect: "none",
|
|
@@ -7478,7 +7810,10 @@ var EditUser = function (_a) {
|
|
|
7478
7810
|
var _g = useState(false), isSubmitLoading = _g[0], setIsSubmitLoading = _g[1];
|
|
7479
7811
|
var _h = useState(""), error = _h[0], setError = _h[1];
|
|
7480
7812
|
var _j = useState(""), profileError = _j[0], setprofileError = _j[1];
|
|
7481
|
-
var
|
|
7813
|
+
var getUserId = useToken().getUserId;
|
|
7814
|
+
var areasList = useAssetContext().state.areasList;
|
|
7815
|
+
var _k = useUserContext().actions, setDefaultAreaId = _k.setDefaultAreaId, setDefaultAreaName = _k.setDefaultAreaName;
|
|
7816
|
+
var _l = useForm({ defaultValues: INITIAL_VALUES$1 }), register = _l.register, control = _l.control, setValue = _l.setValue, handleSubmit = _l.handleSubmit; _l.watch; var errors = _l.formState.errors;
|
|
7482
7817
|
var handleClose = function (event, reason) {
|
|
7483
7818
|
if (reason === "clickaway") {
|
|
7484
7819
|
return;
|
|
@@ -7486,7 +7821,7 @@ var EditUser = function (_a) {
|
|
|
7486
7821
|
setOpen(false);
|
|
7487
7822
|
};
|
|
7488
7823
|
var onSubmit = function (data) { return __awaiter(void 0, void 0, void 0, function () {
|
|
7489
|
-
var res,
|
|
7824
|
+
var res, updatedUserId, resp, currentLoggedUserId, selectedArea;
|
|
7490
7825
|
return __generator(this, function (_a) {
|
|
7491
7826
|
switch (_a.label) {
|
|
7492
7827
|
case 0:
|
|
@@ -7495,11 +7830,19 @@ var EditUser = function (_a) {
|
|
|
7495
7830
|
case 1:
|
|
7496
7831
|
res = _a.sent();
|
|
7497
7832
|
if (!res.ok) return [3 /*break*/, 3];
|
|
7498
|
-
|
|
7499
|
-
return [4 /*yield*/, setProfilesToUser(
|
|
7833
|
+
updatedUserId = res.data.tables[0].rows[0].UserId;
|
|
7834
|
+
return [4 /*yield*/, setProfilesToUser(updatedUserId, data.ProfilesId)];
|
|
7500
7835
|
case 2:
|
|
7501
7836
|
resp = _a.sent();
|
|
7502
7837
|
if (resp.ok) {
|
|
7838
|
+
currentLoggedUserId = getUserId();
|
|
7839
|
+
if (currentLoggedUserId === updatedUserId && data.DefaultAssetId) {
|
|
7840
|
+
selectedArea = areasList.find(function (area) { return (area === null || area === void 0 ? void 0 : area.AssetId) === data.DefaultAssetId; });
|
|
7841
|
+
if (selectedArea) {
|
|
7842
|
+
setDefaultAreaId(data.DefaultAssetId);
|
|
7843
|
+
setDefaultAreaName(selectedArea.AssetName);
|
|
7844
|
+
}
|
|
7845
|
+
}
|
|
7503
7846
|
onHide(true);
|
|
7504
7847
|
setOpen(true);
|
|
7505
7848
|
}
|
|
@@ -7509,7 +7852,9 @@ var EditUser = function (_a) {
|
|
|
7509
7852
|
case 3:
|
|
7510
7853
|
setError(res.message);
|
|
7511
7854
|
_a.label = 4;
|
|
7512
|
-
case 4:
|
|
7855
|
+
case 4:
|
|
7856
|
+
setIsSubmitLoading(false);
|
|
7857
|
+
return [2 /*return*/];
|
|
7513
7858
|
}
|
|
7514
7859
|
});
|
|
7515
7860
|
}); };
|
|
@@ -7537,6 +7882,7 @@ var EditUser = function (_a) {
|
|
|
7537
7882
|
setValue("AuthTypeId", userSelected.AuthTypeId);
|
|
7538
7883
|
setValue("IsActive", userSelected.IsActive);
|
|
7539
7884
|
setValue("LastLogin", userSelected.LastLogin);
|
|
7885
|
+
setValue("DefaultAssetId", userSelected.DefaultAssetId);
|
|
7540
7886
|
setValue("ProfilesId", profilesIds.map(function (pId) { return parseInt(pId); }));
|
|
7541
7887
|
setIsLoading(false);
|
|
7542
7888
|
}
|
|
@@ -7578,6 +7924,11 @@ var EditUser = function (_a) {
|
|
|
7578
7924
|
var _b = _a.field, value = _b.value, onChange = _b.onChange;
|
|
7579
7925
|
return (React.createElement(AuthTypeSelector, { value: value, onChange: onChange }));
|
|
7580
7926
|
} })),
|
|
7927
|
+
React.createElement(Grid, { item: true, xs: 12, md: 6, style: { padding: "0 0 0 5px" } },
|
|
7928
|
+
React.createElement(Controller, { name: "DefaultAssetId", control: control, render: function (_a) {
|
|
7929
|
+
var _b = _a.field, value = _b.value, onChange = _b.onChange;
|
|
7930
|
+
return (React.createElement(AssetSelector, { value: value, onChange: onChange }));
|
|
7931
|
+
} })),
|
|
7581
7932
|
React.createElement(Grid, { item: true, xs: 12, md: 6 },
|
|
7582
7933
|
React.createElement(Controller, { name: "IsActive", control: control, render: function (_a) {
|
|
7583
7934
|
var field = _a.field;
|
|
@@ -8010,161 +8361,60 @@ var DateFormatter = new Intl.DateTimeFormat("en-US", {
|
|
|
8010
8361
|
// timeZone: 'America/Los_Angeles'
|
|
8011
8362
|
});
|
|
8012
8363
|
var TimeFormatter = new Intl.DateTimeFormat("en-US-u-hc-h23", {
|
|
8013
|
-
hour: "2-digit",
|
|
8014
|
-
minute: "numeric",
|
|
8015
|
-
second: "numeric",
|
|
8016
|
-
hour12: false,
|
|
8017
|
-
// timeZone: 'America/Los_Angeles'
|
|
8018
|
-
});
|
|
8019
|
-
|
|
8020
|
-
var getShiftStyle = function (shift) {
|
|
8021
|
-
if (shift === "D") {
|
|
8022
|
-
return { color: "#52a8b7" };
|
|
8023
|
-
}
|
|
8024
|
-
else if (shift === "N") {
|
|
8025
|
-
return { color: "#A5A5A5" };
|
|
8026
|
-
}
|
|
8027
|
-
else {
|
|
8028
|
-
return {};
|
|
8029
|
-
}
|
|
8030
|
-
};
|
|
8031
|
-
var getCrewStyle = function (crew) {
|
|
8032
|
-
if (crew === "A") {
|
|
8033
|
-
return { color: "#0070C0" };
|
|
8034
|
-
}
|
|
8035
|
-
else if (crew === "B") {
|
|
8036
|
-
return { color: "#FFD24A" };
|
|
8037
|
-
}
|
|
8038
|
-
else if (crew === "C") {
|
|
8039
|
-
return { color: "#FD8359" };
|
|
8040
|
-
}
|
|
8041
|
-
else if (crew === "D") {
|
|
8042
|
-
return { color: "#00B050" };
|
|
8043
|
-
}
|
|
8044
|
-
else {
|
|
8045
|
-
return {};
|
|
8046
|
-
}
|
|
8047
|
-
};
|
|
8048
|
-
var GetShiftColor = function (props) {
|
|
8049
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
8050
|
-
React__default.createElement("i", { className: "fas fa-square mr-2", style: getShiftStyle(props.value) })));
|
|
8051
|
-
};
|
|
8052
|
-
var GetCrewColor = function (props) {
|
|
8053
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
8054
|
-
React__default.createElement("i", { className: "fas fa-square mr-2", style: getCrewStyle(props.value) })));
|
|
8055
|
-
};
|
|
8056
|
-
|
|
8057
|
-
var Configuration$1 = /** @class */ (function () {
|
|
8058
|
-
function Configuration() {
|
|
8059
|
-
var _a;
|
|
8060
|
-
this.API_PROCEDURE_URL = document.getElementsByTagName("base")[0].href + "backend";
|
|
8061
|
-
this.API_AUTH_URL = document.getElementsByTagName("base")[0].href + "authentication";
|
|
8062
|
-
this.TOKEN =
|
|
8063
|
-
((_a = JSON.parse(localStorage.getItem("userMESData"))) === null || _a === void 0 ? void 0 : _a.token) || "";
|
|
8064
|
-
}
|
|
8065
|
-
return Configuration;
|
|
8066
|
-
}());
|
|
8067
|
-
|
|
8068
|
-
var _a;
|
|
8069
|
-
var base$2 = document.getElementsByTagName("base")[0].getAttribute("href") || "/";
|
|
8070
|
-
function renewToken() {
|
|
8071
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
8072
|
-
var refreshToken, config, fd, response, token;
|
|
8073
|
-
return __generator(this, function (_a) {
|
|
8074
|
-
switch (_a.label) {
|
|
8075
|
-
case 0:
|
|
8076
|
-
refreshToken = localStorage.getItem("refreshToken");
|
|
8077
|
-
if (!refreshToken) {
|
|
8078
|
-
throw new Error("refresh token does not exist");
|
|
8079
|
-
}
|
|
8080
|
-
config = new Configuration$1();
|
|
8081
|
-
fd = new FormData();
|
|
8082
|
-
fd.append("refreshToken", refreshToken);
|
|
8083
|
-
return [4 /*yield*/, axios.post("".concat(config.API_AUTH_URL, "/refresh"), fd, {
|
|
8084
|
-
headers: {
|
|
8085
|
-
"Content-Type": "application/json",
|
|
8086
|
-
},
|
|
8087
|
-
params: {
|
|
8088
|
-
refreshToken: refreshToken,
|
|
8089
|
-
},
|
|
8090
|
-
})];
|
|
8091
|
-
case 1:
|
|
8092
|
-
response = _a.sent();
|
|
8093
|
-
token = response.data.result;
|
|
8094
|
-
if (token) {
|
|
8095
|
-
return [2 /*return*/, [token, refreshToken]];
|
|
8096
|
-
}
|
|
8097
|
-
else {
|
|
8098
|
-
throw new Error("Token is not valid");
|
|
8099
|
-
}
|
|
8100
|
-
}
|
|
8101
|
-
});
|
|
8102
|
-
});
|
|
8103
|
-
}
|
|
8104
|
-
function isUnauthorizedError(error) {
|
|
8105
|
-
var status = error.response.status;
|
|
8106
|
-
return status === 499 || status === 499; // custom status code
|
|
8107
|
-
}
|
|
8108
|
-
var axiosInstance = axios.create({
|
|
8109
|
-
headers: {
|
|
8110
|
-
Authorization: "Bearer ".concat((_a = localStorage.getItem("token")) !== null && _a !== void 0 ? _a : ""),
|
|
8111
|
-
},
|
|
8112
|
-
});
|
|
8113
|
-
var refreshingFunc;
|
|
8114
|
-
axiosInstance.interceptors.response.use(function (res) { return res; }, function (error) { return __awaiter(void 0, void 0, void 0, function () {
|
|
8115
|
-
var originalConfig, token, _a, newToken, newRefreshToken, innerError_1, err_1;
|
|
8116
|
-
return __generator(this, function (_b) {
|
|
8117
|
-
switch (_b.label) {
|
|
8118
|
-
case 0:
|
|
8119
|
-
originalConfig = error.config;
|
|
8120
|
-
if (originalConfig.headers.MESF_Retries === 1) {
|
|
8121
|
-
localStorage.removeItem("token");
|
|
8122
|
-
localStorage.removeItem("refreshToken");
|
|
8123
|
-
window.location.href = "".concat(base$2, "logout?message=Session%20expired&redirectTo=").concat(window.location.href);
|
|
8124
|
-
return [2 /*return*/, Promise.reject(error)];
|
|
8125
|
-
}
|
|
8126
|
-
token = getTokenFromLS();
|
|
8127
|
-
if (!token || !isUnauthorizedError(error)) {
|
|
8128
|
-
return [2 /*return*/, Promise.reject(error)];
|
|
8129
|
-
}
|
|
8130
|
-
_b.label = 1;
|
|
8131
|
-
case 1:
|
|
8132
|
-
_b.trys.push([1, 7, 8, 9]);
|
|
8133
|
-
if (!refreshingFunc)
|
|
8134
|
-
refreshingFunc = renewToken();
|
|
8135
|
-
return [4 /*yield*/, refreshingFunc];
|
|
8136
|
-
case 2:
|
|
8137
|
-
_a = _b.sent(), newToken = _a[0], newRefreshToken = _a[1];
|
|
8138
|
-
localStorage.setItem("token", newToken);
|
|
8139
|
-
localStorage.setItem("refreshToken", newRefreshToken);
|
|
8140
|
-
axiosInstance.defaults.headers.Authorization = "Bearer ".concat(newToken);
|
|
8141
|
-
originalConfig.headers.Authorization = "Bearer ".concat(newToken);
|
|
8142
|
-
originalConfig.headers.MESF_Retries = 1;
|
|
8143
|
-
_b.label = 3;
|
|
8144
|
-
case 3:
|
|
8145
|
-
_b.trys.push([3, 5, , 6]);
|
|
8146
|
-
return [4 /*yield*/, axios.request(originalConfig)];
|
|
8147
|
-
case 4: return [2 /*return*/, _b.sent()];
|
|
8148
|
-
case 5:
|
|
8149
|
-
innerError_1 = _b.sent();
|
|
8150
|
-
if (isUnauthorizedError(innerError_1)) {
|
|
8151
|
-
return [2 /*return*/, Promise.reject(innerError_1)];
|
|
8152
|
-
}
|
|
8153
|
-
return [2 /*return*/, Promise.reject(innerError_1)];
|
|
8154
|
-
case 6: return [3 /*break*/, 9];
|
|
8155
|
-
case 7:
|
|
8156
|
-
err_1 = _b.sent();
|
|
8157
|
-
localStorage.removeItem("token");
|
|
8158
|
-
localStorage.removeItem("refreshToken");
|
|
8159
|
-
window.location.href = "".concat(base$2, "logout?message=Session%20expired&redirectTo=").concat(window.location.href);
|
|
8160
|
-
return [2 /*return*/, Promise.reject(err_1)];
|
|
8161
|
-
case 8:
|
|
8162
|
-
refreshingFunc = undefined;
|
|
8163
|
-
return [7 /*endfinally*/];
|
|
8164
|
-
case 9: return [2 /*return*/];
|
|
8165
|
-
}
|
|
8166
|
-
});
|
|
8167
|
-
}); });
|
|
8364
|
+
hour: "2-digit",
|
|
8365
|
+
minute: "numeric",
|
|
8366
|
+
second: "numeric",
|
|
8367
|
+
hour12: false,
|
|
8368
|
+
// timeZone: 'America/Los_Angeles'
|
|
8369
|
+
});
|
|
8370
|
+
|
|
8371
|
+
var getShiftStyle = function (shift) {
|
|
8372
|
+
if (shift === "D") {
|
|
8373
|
+
return { color: "#52a8b7" };
|
|
8374
|
+
}
|
|
8375
|
+
else if (shift === "N") {
|
|
8376
|
+
return { color: "#A5A5A5" };
|
|
8377
|
+
}
|
|
8378
|
+
else {
|
|
8379
|
+
return {};
|
|
8380
|
+
}
|
|
8381
|
+
};
|
|
8382
|
+
var getCrewStyle = function (crew) {
|
|
8383
|
+
if (crew === "A") {
|
|
8384
|
+
return { color: "#0070C0" };
|
|
8385
|
+
}
|
|
8386
|
+
else if (crew === "B") {
|
|
8387
|
+
return { color: "#FFD24A" };
|
|
8388
|
+
}
|
|
8389
|
+
else if (crew === "C") {
|
|
8390
|
+
return { color: "#FD8359" };
|
|
8391
|
+
}
|
|
8392
|
+
else if (crew === "D") {
|
|
8393
|
+
return { color: "#00B050" };
|
|
8394
|
+
}
|
|
8395
|
+
else {
|
|
8396
|
+
return {};
|
|
8397
|
+
}
|
|
8398
|
+
};
|
|
8399
|
+
var GetShiftColor = function (props) {
|
|
8400
|
+
return (React__default.createElement(React__default.Fragment, null,
|
|
8401
|
+
React__default.createElement("i", { className: "fas fa-square mr-2", style: getShiftStyle(props.value) })));
|
|
8402
|
+
};
|
|
8403
|
+
var GetCrewColor = function (props) {
|
|
8404
|
+
return (React__default.createElement(React__default.Fragment, null,
|
|
8405
|
+
React__default.createElement("i", { className: "fas fa-square mr-2", style: getCrewStyle(props.value) })));
|
|
8406
|
+
};
|
|
8407
|
+
|
|
8408
|
+
var Configuration$1 = /** @class */ (function () {
|
|
8409
|
+
function Configuration() {
|
|
8410
|
+
var _a;
|
|
8411
|
+
this.API_PROCEDURE_URL = document.getElementsByTagName("base")[0].href + "backend";
|
|
8412
|
+
this.API_AUTH_URL = document.getElementsByTagName("base")[0].href + "authentication";
|
|
8413
|
+
this.TOKEN =
|
|
8414
|
+
((_a = JSON.parse(localStorage.getItem("userMESData"))) === null || _a === void 0 ? void 0 : _a.token) || "";
|
|
8415
|
+
}
|
|
8416
|
+
return Configuration;
|
|
8417
|
+
}());
|
|
8168
8418
|
|
|
8169
8419
|
var base$1 = document.getElementsByTagName("base")[0].getAttribute("href") || "/";
|
|
8170
8420
|
var MESApiService = /** @class */ (function () {
|
|
@@ -9024,208 +9274,6 @@ function ChangePassword(props) {
|
|
|
9024
9274
|
React__default.createElement(Button, { onClick: handleOk, color: "primary", disabled: !canChange }, "Change Password"))));
|
|
9025
9275
|
}
|
|
9026
9276
|
|
|
9027
|
-
var useMesfRealtime = function (_a) {
|
|
9028
|
-
var onReceiveMessage = _a.onReceiveMessage;
|
|
9029
|
-
useEffect(function () {
|
|
9030
|
-
var connection = new HubConnectionBuilder()
|
|
9031
|
-
.withUrl("/ws")
|
|
9032
|
-
.withAutomaticReconnect()
|
|
9033
|
-
.configureLogging(LogLevel.Information)
|
|
9034
|
-
.build();
|
|
9035
|
-
connection
|
|
9036
|
-
.start()
|
|
9037
|
-
.then(function () {
|
|
9038
|
-
console.log("Connection started");
|
|
9039
|
-
})
|
|
9040
|
-
.catch(function (err) {
|
|
9041
|
-
console.log("Error while starting connection: " + err);
|
|
9042
|
-
});
|
|
9043
|
-
connection.on("ReceiveMessage", function (author, message) {
|
|
9044
|
-
onReceiveMessage(author, message);
|
|
9045
|
-
});
|
|
9046
|
-
return function () {
|
|
9047
|
-
connection
|
|
9048
|
-
.stop()
|
|
9049
|
-
.then(function () {
|
|
9050
|
-
console.log("Connection stopped");
|
|
9051
|
-
})
|
|
9052
|
-
.catch(function (err) {
|
|
9053
|
-
console.log("Error while stopping connection: " + err);
|
|
9054
|
-
});
|
|
9055
|
-
};
|
|
9056
|
-
}, []);
|
|
9057
|
-
};
|
|
9058
|
-
|
|
9059
|
-
var UserInitialState = {
|
|
9060
|
-
userLastName: "",
|
|
9061
|
-
userId: null,
|
|
9062
|
-
defaultAreaId: null,
|
|
9063
|
-
defaultAreaName: "",
|
|
9064
|
-
userLogged: false,
|
|
9065
|
-
permissions: [],
|
|
9066
|
-
};
|
|
9067
|
-
var UserReducer = createSlice({
|
|
9068
|
-
name: "__",
|
|
9069
|
-
initialState: UserInitialState,
|
|
9070
|
-
reducers: {
|
|
9071
|
-
setUserId: function (state, _a) {
|
|
9072
|
-
var payload = _a.payload;
|
|
9073
|
-
state.userId = payload;
|
|
9074
|
-
},
|
|
9075
|
-
setUserLastName: function (state, _a) {
|
|
9076
|
-
var payload = _a.payload;
|
|
9077
|
-
state.userLastName = payload;
|
|
9078
|
-
},
|
|
9079
|
-
setDefaultAreaId: function (state, _a) {
|
|
9080
|
-
var payload = _a.payload;
|
|
9081
|
-
state.defaultAreaId = payload;
|
|
9082
|
-
},
|
|
9083
|
-
setDefaultAreaName: function (state, _a) {
|
|
9084
|
-
var payload = _a.payload;
|
|
9085
|
-
state.defaultAreaName = payload;
|
|
9086
|
-
},
|
|
9087
|
-
setUserLogged: function (state, _a) {
|
|
9088
|
-
var payload = _a.payload;
|
|
9089
|
-
state.userLogged = payload;
|
|
9090
|
-
},
|
|
9091
|
-
setPermissions: function (state, _a) {
|
|
9092
|
-
var payload = _a.payload;
|
|
9093
|
-
state.permissions = payload;
|
|
9094
|
-
},
|
|
9095
|
-
},
|
|
9096
|
-
});
|
|
9097
|
-
|
|
9098
|
-
var UserContext = createContext({
|
|
9099
|
-
state: UserReducer.getInitialState(),
|
|
9100
|
-
actions: UserReducer.actions,
|
|
9101
|
-
isLoading: true,
|
|
9102
|
-
});
|
|
9103
|
-
var useUserContext = function () { return useContext(UserContext); };
|
|
9104
|
-
var useHasPermission = function () {
|
|
9105
|
-
var state = useUserContext().state;
|
|
9106
|
-
return function (permission) {
|
|
9107
|
-
return state.permissions.some(function (p) { return p === permission; });
|
|
9108
|
-
};
|
|
9109
|
-
};
|
|
9110
|
-
var UserProvider = function (_a) {
|
|
9111
|
-
var children = _a.children;
|
|
9112
|
-
var _b = useComplexState({
|
|
9113
|
-
initialState: UserReducer.getInitialState(),
|
|
9114
|
-
reducers: UserReducer.caseReducers,
|
|
9115
|
-
}), state = _b[0], actions = _b[1];
|
|
9116
|
-
var _c = useState(false), permissionsLoaded = _c[0], setPermissionsLoaded = _c[1];
|
|
9117
|
-
var getUserId = function () {
|
|
9118
|
-
var sessionData = localStorage.getItem("userMESData") || "{}";
|
|
9119
|
-
var userData = JSON.parse(sessionData);
|
|
9120
|
-
return get(userData, "id", null);
|
|
9121
|
-
};
|
|
9122
|
-
var getUserPermissions = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
9123
|
-
var userId, resp, permissionsArray, error_1;
|
|
9124
|
-
return __generator(this, function (_a) {
|
|
9125
|
-
switch (_a.label) {
|
|
9126
|
-
case 0:
|
|
9127
|
-
userId = getUserId();
|
|
9128
|
-
if (!userId) return [3 /*break*/, 4];
|
|
9129
|
-
_a.label = 1;
|
|
9130
|
-
case 1:
|
|
9131
|
-
_a.trys.push([1, 3, , 4]);
|
|
9132
|
-
return [4 /*yield*/, getUserPermissionsFromAPI({
|
|
9133
|
-
UserId: userId,
|
|
9134
|
-
})];
|
|
9135
|
-
case 2:
|
|
9136
|
-
resp = (_a.sent());
|
|
9137
|
-
if (resp && resp.Permissions) {
|
|
9138
|
-
permissionsArray = resp.Permissions.split(",");
|
|
9139
|
-
actions.setPermissions(permissionsArray);
|
|
9140
|
-
setPermissionsLoaded(true);
|
|
9141
|
-
}
|
|
9142
|
-
return [3 /*break*/, 4];
|
|
9143
|
-
case 3:
|
|
9144
|
-
error_1 = _a.sent();
|
|
9145
|
-
console.error("Failed to load permissions:", error_1);
|
|
9146
|
-
return [3 /*break*/, 4];
|
|
9147
|
-
case 4: return [2 /*return*/];
|
|
9148
|
-
}
|
|
9149
|
-
});
|
|
9150
|
-
}); };
|
|
9151
|
-
var userId = getUserId();
|
|
9152
|
-
useEffect(function () {
|
|
9153
|
-
getUserPermissions();
|
|
9154
|
-
}, [userId]);
|
|
9155
|
-
useMesfRealtime({
|
|
9156
|
-
onReceiveMessage: function (author, message) {
|
|
9157
|
-
if (message === "SEC.GetPermissions") {
|
|
9158
|
-
getUserPermissions();
|
|
9159
|
-
}
|
|
9160
|
-
},
|
|
9161
|
-
});
|
|
9162
|
-
return (React__default.createElement(UserContext.Provider, { value: { state: state, actions: actions, isLoading: !permissionsLoaded } }, children));
|
|
9163
|
-
};
|
|
9164
|
-
|
|
9165
|
-
var getTokenFromLS = function () {
|
|
9166
|
-
return localStorage.getItem("token");
|
|
9167
|
-
};
|
|
9168
|
-
function useToken() {
|
|
9169
|
-
var setUserLogged = useUserContext().actions.setUserLogged;
|
|
9170
|
-
var _a = useState(getTokenFromLS()), token = _a[0], setToken = _a[1];
|
|
9171
|
-
var saveUserData = function (userToken) {
|
|
9172
|
-
localStorage.setItem("userMESData", JSON.stringify(userToken));
|
|
9173
|
-
localStorage.setItem("refreshToken", userToken["refreshToken"]);
|
|
9174
|
-
localStorage.setItem("token", userToken["token"]);
|
|
9175
|
-
setToken(userToken["token"]);
|
|
9176
|
-
axiosInstance.defaults.headers.Authorization = "Bearer ".concat(userToken["token"]);
|
|
9177
|
-
setUserLogged(true);
|
|
9178
|
-
};
|
|
9179
|
-
var clearUserData = function () {
|
|
9180
|
-
localStorage.removeItem("userMESData");
|
|
9181
|
-
localStorage.removeItem("token");
|
|
9182
|
-
localStorage.removeItem("refreshToken");
|
|
9183
|
-
setToken("");
|
|
9184
|
-
setUserLogged(false);
|
|
9185
|
-
};
|
|
9186
|
-
var getUserName = function () {
|
|
9187
|
-
var sessionData = localStorage.getItem("userMESData");
|
|
9188
|
-
var userData = JSON.parse(sessionData);
|
|
9189
|
-
return (((userData || {}).lastName || "") +
|
|
9190
|
-
", " +
|
|
9191
|
-
((userData || {}).firstName || ""));
|
|
9192
|
-
};
|
|
9193
|
-
var getFirstName = function () {
|
|
9194
|
-
var sessionData = localStorage.getItem("userMESData");
|
|
9195
|
-
var userData = JSON.parse(sessionData);
|
|
9196
|
-
return (userData || {}).firstName || "";
|
|
9197
|
-
};
|
|
9198
|
-
var getLastName = function () {
|
|
9199
|
-
var sessionData = localStorage.getItem("userMESData");
|
|
9200
|
-
var userData = JSON.parse(sessionData);
|
|
9201
|
-
return (userData || {}).lastName || "";
|
|
9202
|
-
};
|
|
9203
|
-
var getUserId = function () {
|
|
9204
|
-
var sessionData = localStorage.getItem("userMESData");
|
|
9205
|
-
var userData = JSON.parse(sessionData);
|
|
9206
|
-
setUserLogged(true);
|
|
9207
|
-
return (userData || {}).id || -1;
|
|
9208
|
-
};
|
|
9209
|
-
var hasPermission = function (permissionId) {
|
|
9210
|
-
var sessionData = localStorage.getItem("userMESData");
|
|
9211
|
-
if (sessionData === undefined)
|
|
9212
|
-
return false;
|
|
9213
|
-
var userData = JSON.parse(sessionData);
|
|
9214
|
-
var permissions = userData.permissions || [];
|
|
9215
|
-
return permissions.indexOf(permissionId) > -1; //case sensitve
|
|
9216
|
-
};
|
|
9217
|
-
return {
|
|
9218
|
-
getUserName: getUserName,
|
|
9219
|
-
saveUserData: saveUserData,
|
|
9220
|
-
clearUserData: clearUserData,
|
|
9221
|
-
getFirstName: getFirstName,
|
|
9222
|
-
getLastName: getLastName,
|
|
9223
|
-
getUserId: getUserId,
|
|
9224
|
-
hasPermission: hasPermission,
|
|
9225
|
-
token: token,
|
|
9226
|
-
};
|
|
9227
|
-
}
|
|
9228
|
-
|
|
9229
9277
|
var AuthContext = React__default.createContext({});
|
|
9230
9278
|
var AuthProvider = function (_a) {
|
|
9231
9279
|
var children = _a.children, authConfig = _a.authConfig;
|