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 { 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"; 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 ( return (
<ModalDialogContainer <ModalDialogContainer
visible={visible} visible={visible}
onClose={onClose} onClose={onClose}
displayType="modal" displayType="modal"
> >
<ModalDialog.Header> <ModalDialog.Header>{headerText}</ModalDialog.Header>
{t("ChangeUserStatusDialog:DisableUser")} <ModalDialog.Body>{bodyText}</ModalDialog.Body>
</ModalDialog.Header>
<ModalDialog.Body>
{t("ChangeUserStatusDialog:DisableUserDescription")}&nbsp;
{t("ChangeUserStatusDialog:DisableGeneralDescription")}
</ModalDialog.Body>
<ModalDialog.Footer> <ModalDialog.Footer>
<Button <Button
key="DisableBtn" key="DisableBtn"
@ -24,7 +52,7 @@ const DisableUserDialog = ({ t, visible, onClose, isLoading }) => {
size="normal" size="normal"
scale scale
primary={true} primary={true}
onClick={() => console.log("disable")} onClick={onClickDisableUser}
isLoading={isLoading} isLoading={isLoading}
/> />
<Button <Button

View File

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

View File

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