added method for disable users
This commit is contained in:
parent
9b91118486
commit
4fcb1cec73
@ -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")}
|
|
||||||
{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
|
||||||
|
@ -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"])(
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user