⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.72
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
admin
/
View File Name :
UserSessions.tsx
import React, { PureComponent } from 'react'; import { ConfirmButton, ConfirmModal, Button, Stack } from '@grafana/ui'; import { contextSrv } from 'app/core/core'; import { i18nDate } from 'app/core/internationalization'; import { AccessControlAction, UserSession } from 'app/types'; interface Props { sessions: UserSession[]; onSessionRevoke: (id: number) => void; onAllSessionsRevoke: () => void; } interface State { showLogoutModal: boolean; } class BaseUserSessions extends PureComponent
{ forceAllLogoutButton = React.createRef
(); state: State = { showLogoutModal: false, }; showLogoutConfirmationModal = () => { this.setState({ showLogoutModal: true }); }; dismissLogoutConfirmationModal = () => { this.setState({ showLogoutModal: false }, () => { this.forceAllLogoutButton.current?.focus(); }); }; onSessionRevoke = (id: number) => { return () => { this.props.onSessionRevoke(id); }; }; onAllSessionsRevoke = () => { this.setState({ showLogoutModal: false }); this.props.onAllSessionsRevoke(); }; render() { const { sessions } = this.props; const { showLogoutModal } = this.state; const canLogout = contextSrv.hasPermission(AccessControlAction.UsersLogout); return (
Sessions
Last seen
Logged on
IP address
Browser and OS
{sessions && sessions.map((session, index) => (
{session.isActive ? 'Now' : session.seenAt}
{i18nDate(session.createdAt, { dateStyle: 'long' })}
{session.clientIp}
{`${session.browser} on ${session.os} ${session.osVersion}`}
{canLogout && (
Force logout
)}
))}
{canLogout && sessions.length > 0 && (
Force logout from all devices
)}
); } } export const UserSessions = BaseUserSessions;