added method for disable users

This commit is contained in:
Elyor Djalilov 2024-06-14 13:34:33 +05:00
parent 9b91118486
commit 4fcb1cec73
3 changed files with 48 additions and 13 deletions

View File

@ -1,22 +1,50 @@
import { Button } from "@docspace/shared/components/button";
import { ModalDialog } from "@docspace/shared/components/modal-dialog";
import { Button } from "@docspace/shared/components/button";
import { toastr } from "@docspace/shared/components/toast";
import { EmployeeStatus } from "@docspace/shared/enums";
import ModalDialogContainer from "../ModalDialogContainer";
const DisableUserDialog = ({ t, visible, onClose, isLoading }) => {
const DisableUserDialog = ({
t,
visible,
onClose,
isLoading,
fetchData,
selection,
updateUserStatus,
}) => {
const userIds = selection.map((user) => user.id);
const onlyOneUser = userIds.length === 1;
let headerText = "";
let bodyText = "";
headerText = onlyOneUser
? t("ChangeUserStatusDialog:DisableUser")
: t("ChangeUserStatusDialog:DisableUsers");
bodyText = onlyOneUser
? t("ChangeUserStatusDialog:DisableUserDescription")
: t("ChangeUserStatusDialog:DisableUsersDescription");
bodyText = bodyText + t("ChangeUserStatusDialog:DisableGeneralDescription");
const onClickDisableUser = async () => {
await updateUserStatus(EmployeeStatus.Disabled, userIds);
toastr.success(t("PeopleTranslations:SuccessChangeUserStatus"));
await fetchData();
onClose();
};
return (
<ModalDialogContainer
visible={visible}
onClose={onClose}
displayType="modal"
>
<ModalDialog.Header>
{t("ChangeUserStatusDialog:DisableUser")}
</ModalDialog.Header>
<ModalDialog.Body>
{t("ChangeUserStatusDialog:DisableUserDescription")}&nbsp;
{t("ChangeUserStatusDialog:DisableGeneralDescription")}
</ModalDialog.Body>
<ModalDialog.Header>{headerText}</ModalDialog.Header>
<ModalDialog.Body>{bodyText}</ModalDialog.Body>
<ModalDialog.Footer>
<Button
key="DisableBtn"
@ -24,7 +52,7 @@ const DisableUserDialog = ({ t, visible, onClose, isLoading }) => {
size="normal"
scale
primary={true}
onClick={() => console.log("disable")}
onClick={onClickDisableUser}
isLoading={isLoading}
/>
<Button

View File

@ -98,6 +98,7 @@ const Sessions = ({
onClickLogoutAllSessions,
onClickLogoutAllExceptThis,
onClickRemoveSession,
updateUserStatus,
}) => {
useEffect(() => {
socketHelper.emit({
@ -161,6 +162,9 @@ const Sessions = ({
t={t}
visible={disableDialogVisible}
onClose={() => setDisableDialogVisible(false)}
fetchData={fetchData}
selection={selection}
updateUserStatus={updateUserStatus}
/>
)}
@ -192,6 +196,7 @@ const Sessions = ({
};
export default inject(({ settingsStore, setup, peopleStore }) => {
const { updateUserStatus } = peopleStore.usersStore;
const { socketHelper, currentDeviceType } = settingsStore;
const {
allSessions,
@ -246,6 +251,7 @@ export default inject(({ settingsStore, setup, peopleStore }) => {
onClickLogoutAllSessions,
onClickLogoutAllExceptThis,
onClickRemoveSession,
updateUserStatus,
};
})(
withTranslation(["Settings", "Profile", "Common", "ChangeUserStatusDialog"])(

View File

@ -511,9 +511,10 @@ class SelectionStore {
const { getUsersList } = this.peopleStore.usersStore;
try {
const users = await getUsersList();
const sessionsPromises = users.map((user) =>
getUserSessionsById(user.id),
);
const sessionsPromises = users
.filter((user) => user.status !== EmployeeStatus.Disabled)
.map((user) => getUserSessionsById(user.id));
const sessions = await Promise.all(sessionsPromises);
this.setSessionsData(sessions);
this.updateAllSessions(sessions, this.dataFromSocket);