added logout all users method

This commit is contained in:
Elyor Djalilov 2024-06-20 13:32:54 +05:00
parent 790d289781
commit d206f44ce7
5 changed files with 38 additions and 1 deletions

View File

@ -36,6 +36,7 @@ import ModalDialogContainer from "../ModalDialogContainer";
const LogoutAllSessionDialog = ({
t,
exceptId,
userIds,
displayName,
visible,
isLoading,
@ -43,6 +44,7 @@ const LogoutAllSessionDialog = ({
onRemoveAllSessions,
onRemoveAllExceptThis,
isSeveralSelection,
onLogoutAllUsers,
onLogoutAllSessions,
onLogoutAllExceptThis,
}) => {
@ -56,7 +58,9 @@ const LogoutAllSessionDialog = ({
const onClickLogout = () => {
if (!isChecked) {
onLogoutAllSessions(t);
isSeveralSelection
? onLogoutAllUsers(t, userIds)
: onLogoutAllSessions(t);
onClose();
} else {
onLogoutAllExceptThis(t, exceptId);

View File

@ -98,6 +98,7 @@ const Sessions = ({
setDisableDialogVisible,
setLogoutDialogVisible,
setLogoutAllDialogVisible,
onClickLogoutAllUsers,
onClickLogoutAllSessions,
onClickLogoutAllExceptThis,
onClickRemoveSession,
@ -212,8 +213,10 @@ const Sessions = ({
visible={logoutAllDialogVisible}
isLoading={isLoading}
exceptId={exceptId}
userIds={userIds}
displayName={displayName}
onClose={() => setLogoutAllDialogVisible(false)}
onLogoutAllUsers={onClickLogoutAllUsers}
onLogoutAllSessions={onClickLogoutAllSessions}
onLogoutAllExceptThis={onClickLogoutAllExceptThis}
/>
@ -238,6 +241,7 @@ export default inject(({ settingsStore, setup, peopleStore }) => {
selection,
bufferSelection,
isLoading,
onClickLogoutAllUsers,
onClickLogoutAllSessions,
onClickLogoutAllExceptThis,
onClickRemoveSession,
@ -279,6 +283,7 @@ export default inject(({ settingsStore, setup, peopleStore }) => {
setLogoutDialogVisible,
setLogoutAllDialogVisible,
isLoading,
onClickLogoutAllUsers,
onClickLogoutAllSessions,
onClickLogoutAllExceptThis,
onClickRemoveSession,

View File

@ -631,6 +631,22 @@ class SelectionStore {
this.setIsLoading(false);
}
};
onClickLogoutAllUsers = async (t) => {
const { logoutAllUsers } = this.settingsSetupStore;
const userIds = this.selection.flatMap((item) =>
item.connections.map((connection) => connection.userId),
);
try {
this.setIsLoading(true);
await logoutAllUsers(userIds);
toastr.success(t("LoggedOutBySelectedUsers"));
} catch (error) {
toastr.error(error);
} finally {
this.setIsLoading(false);
}
};
}
export default SelectionStore;

View File

@ -584,6 +584,10 @@ class SettingsSetupStore {
return api.settings.removeActiveSession(id);
};
logoutAllUsers = (userIds) => {
return api.settings.logoutAllUsers(userIds);
};
setLogoutDialogVisible = (visible) => {
this.logoutDialogVisible = visible;
};

View File

@ -920,6 +920,14 @@ export function removeAllExceptThisEventId(eventId) {
});
}
export function logoutAllUsers(userIds) {
return request({
method: "put",
url: `/security/activeconnections/logoutall`,
data: { userIds },
});
}
export function removeAllActiveSessions() {
return request({
method: "put",