Files
ETB/ETB-FrontEnd/node_modules/.cache/babel-loader/6f1cf375b8d62aa2a5662d9bead26affec4f399e209016f9774c834f1e266ee5.json
Iliyan Angelov 306b20e24a Frontend start
2025-09-14 00:54:48 +03:00

1 line
61 KiB
JSON

{"ast":null,"code":"var _jsxFileName = \"/home/gnx/Desktop/ETB/ETB-FrontEnd/src/pages/Admin/UserManagement.tsx\",\n _s = $RefreshSig$();\nimport React, { useState } from 'react';\nimport { Grid, Paper, Typography, Box, Button, Chip, IconButton, TextField, InputAdornment, FormControl, InputLabel, Select, MenuItem, Dialog, DialogTitle, DialogContent, DialogActions, Avatar, Alert, Card, CardContent } from '@mui/material';\nimport { Search, Add, Edit, Delete } from '@mui/icons-material';\nimport { DataGrid } from '@mui/x-data-grid';\nimport { useAuth, ROLES } from '../../components/Auth/AuthContext';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst mockUsers = [{\n id: 1,\n username: 'admin',\n email: 'admin@company.com',\n name: 'System Administrator',\n role: 'ADMIN',\n department: 'IT',\n lastLogin: '2024-01-15 10:30',\n status: 'active',\n avatar: null,\n created: '2024-01-01',\n permissions: ['All Permissions']\n}, {\n id: 2,\n username: 'john.smith',\n email: 'john.smith@company.com',\n name: 'John Smith',\n role: 'IT_STAFF',\n department: 'Infrastructure',\n lastLogin: '2024-01-15 09:45',\n status: 'active',\n avatar: null,\n created: '2024-01-02',\n permissions: ['Incident Management', 'Problem Management', 'Change Management']\n}, {\n id: 3,\n username: 'sarah.johnson',\n email: 'sarah.johnson@company.com',\n name: 'Sarah Johnson',\n role: 'MANAGER',\n department: 'IT Operations',\n lastLogin: '2024-01-15 08:20',\n status: 'active',\n avatar: null,\n created: '2024-01-03',\n permissions: ['Reporting', 'Management', 'Approval']\n}, {\n id: 4,\n username: 'mike.davis',\n email: 'mike.davis@company.com',\n name: 'Mike Davis',\n role: 'IT_STAFF',\n department: 'Applications',\n lastLogin: '2024-01-14 16:30',\n status: 'active',\n avatar: null,\n created: '2024-01-04',\n permissions: ['Incident Management', 'Problem Management']\n}, {\n id: 5,\n username: 'lisa.wilson',\n email: 'lisa.wilson@company.com',\n name: 'Lisa Wilson',\n role: 'END_USER',\n department: 'HR',\n lastLogin: '2024-01-15 11:15',\n status: 'active',\n avatar: null,\n created: '2024-01-05',\n permissions: ['Self-Service', 'Knowledge Base']\n}, {\n id: 6,\n username: 'auditor1',\n email: 'auditor1@company.com',\n name: 'Audit Specialist',\n role: 'AUDITOR',\n department: 'Compliance',\n lastLogin: '2024-01-14 14:20',\n status: 'active',\n avatar: null,\n created: '2024-01-06',\n permissions: ['Audit', 'Compliance', 'Reporting']\n}];\nconst UserManagement = () => {\n _s();\n var _ROLES$newUser$role;\n const {\n user: currentUser\n } = useAuth();\n const [users, setUsers] = useState(mockUsers);\n const [searchTerm, setSearchTerm] = useState('');\n const [roleFilter, setRoleFilter] = useState('All');\n const [statusFilter, setStatusFilter] = useState('All');\n const [selectedUser, setSelectedUser] = useState(null);\n const [userDialogOpen, setUserDialogOpen] = useState(false);\n const [tabValue, setTabValue] = useState(0);\n const [newUser, setNewUser] = useState({\n username: '',\n email: '',\n name: '',\n role: 'END_USER',\n department: '',\n status: 'active'\n });\n const columns = [{\n field: 'id',\n headerName: 'ID',\n width: 80\n }, {\n field: 'avatar',\n headerName: 'Avatar',\n width: 80,\n renderCell: params => /*#__PURE__*/_jsxDEV(Avatar, {\n sx: {\n width: 32,\n height: 32,\n bgcolor: 'primary.main'\n },\n children: params.row.name.charAt(0)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 9\n }, this)\n }, {\n field: 'name',\n headerName: 'Name',\n width: 200\n }, {\n field: 'username',\n headerName: 'Username',\n width: 150\n }, {\n field: 'email',\n headerName: 'Email',\n width: 250\n }, {\n field: 'role',\n headerName: 'Role',\n width: 120,\n renderCell: params => {\n var _ROLES$params$row$rol, _ROLES$params$row$rol2;\n return /*#__PURE__*/_jsxDEV(Chip, {\n label: ((_ROLES$params$row$rol = ROLES[params.row.role]) === null || _ROLES$params$row$rol === void 0 ? void 0 : _ROLES$params$row$rol.name) || params.row.role,\n size: \"small\",\n sx: {\n bgcolor: ((_ROLES$params$row$rol2 = ROLES[params.row.role]) === null || _ROLES$params$row$rol2 === void 0 ? void 0 : _ROLES$params$row$rol2.color) || 'default',\n color: 'white'\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 9\n }, this);\n }\n }, {\n field: 'department',\n headerName: 'Department',\n width: 150\n }, {\n field: 'status',\n headerName: 'Status',\n width: 100,\n renderCell: params => /*#__PURE__*/_jsxDEV(Chip, {\n label: params.row.status,\n size: \"small\",\n color: params.row.status === 'active' ? 'success' : 'error'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 9\n }, this)\n }, {\n field: 'lastLogin',\n headerName: 'Last Login',\n width: 150\n }, {\n field: 'actions',\n headerName: 'Actions',\n width: 120,\n renderCell: params => /*#__PURE__*/_jsxDEV(Box, {\n children: [/*#__PURE__*/_jsxDEV(IconButton, {\n size: \"small\",\n onClick: () => handleEditUser(params.row),\n children: /*#__PURE__*/_jsxDEV(Edit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(IconButton, {\n size: \"small\",\n onClick: () => handleDeleteUser(params.row.id),\n children: /*#__PURE__*/_jsxDEV(Delete, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 9\n }, this)\n }];\n const handleEditUser = user => {\n setSelectedUser(user);\n setNewUser(user);\n setUserDialogOpen(true);\n };\n const handleDeleteUser = userId => {\n if (window.confirm('Are you sure you want to delete this user?')) {\n setUsers(users.filter(u => u.id !== userId));\n }\n };\n const handleCreateUser = () => {\n setSelectedUser(null);\n setNewUser({\n username: '',\n email: '',\n name: '',\n role: 'END_USER',\n department: '',\n status: 'active'\n });\n setUserDialogOpen(true);\n };\n const handleSaveUser = () => {\n if (selectedUser) {\n // Update existing user\n setUsers(users.map(u => u.id === selectedUser.id ? {\n ...newUser,\n id: selectedUser.id\n } : u));\n } else {\n // Create new user\n const newId = Math.max(...users.map(u => u.id)) + 1;\n setUsers([...users, {\n ...newUser,\n id: newId,\n created: new Date().toISOString().split('T')[0]\n }]);\n }\n setUserDialogOpen(false);\n };\n const getRoleStats = () => {\n const stats = {};\n Object.keys(ROLES).forEach(role => {\n stats[role] = users.filter(u => u.role === role).length;\n });\n return stats;\n };\n const filteredUsers = users.filter(user => {\n const matchesSearch = user.name.toLowerCase().includes(searchTerm.toLowerCase()) || user.username.toLowerCase().includes(searchTerm.toLowerCase()) || user.email.toLowerCase().includes(searchTerm.toLowerCase());\n const matchesRole = roleFilter === 'All' || user.role === roleFilter;\n const matchesStatus = statusFilter === 'All' || user.status === statusFilter;\n return matchesSearch && matchesRole && matchesStatus;\n });\n const roleStats = getRoleStats();\n return /*#__PURE__*/_jsxDEV(Box, {\n children: [/*#__PURE__*/_jsxDEV(Box, {\n sx: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n mb: 3\n },\n children: [/*#__PURE__*/_jsxDEV(Typography, {\n variant: \"h4\",\n gutterBottom: true,\n children: \"User Management\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n variant: \"contained\",\n startIcon: /*#__PURE__*/_jsxDEV(Add, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 22\n }, this),\n onClick: handleCreateUser,\n children: \"Add User\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 272,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n container: true,\n spacing: 3,\n sx: {\n mb: 3\n },\n children: Object.entries(roleStats).map(([role, count]) => {\n var _ROLES, _ROLES2;\n return /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n sm: 6,\n md: 2.4,\n children: /*#__PURE__*/_jsxDEV(Card, {\n children: /*#__PURE__*/_jsxDEV(CardContent, {\n sx: {\n textAlign: 'center'\n },\n children: [/*#__PURE__*/_jsxDEV(Typography, {\n variant: \"h4\",\n sx: {\n color: (_ROLES = ROLES[role]) === null || _ROLES === void 0 ? void 0 : _ROLES.color\n },\n children: count\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(Typography, {\n variant: \"body2\",\n color: \"text.secondary\",\n children: (_ROLES2 = ROLES[role]) === null || _ROLES2 === void 0 ? void 0 : _ROLES2.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 290,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 13\n }, this)\n }, role, false, {\n fileName: _jsxFileName,\n lineNumber: 284,\n columnNumber: 11\n }, this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 282,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Paper, {\n sx: {\n p: 2,\n mb: 3\n },\n children: /*#__PURE__*/_jsxDEV(Grid, {\n container: true,\n spacing: 2,\n alignItems: \"center\",\n children: [/*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 4,\n children: /*#__PURE__*/_jsxDEV(TextField, {\n fullWidth: true,\n placeholder: \"Search users...\",\n value: searchTerm,\n onChange: e => setSearchTerm(e.target.value),\n InputProps: {\n startAdornment: /*#__PURE__*/_jsxDEV(InputAdornment, {\n position: \"start\",\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 310,\n columnNumber: 19\n }, this)\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 303,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 302,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 3,\n children: /*#__PURE__*/_jsxDEV(FormControl, {\n fullWidth: true,\n children: [/*#__PURE__*/_jsxDEV(InputLabel, {\n children: \"Role\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(Select, {\n value: roleFilter,\n label: \"Role\",\n onChange: e => setRoleFilter(e.target.value),\n children: [/*#__PURE__*/_jsxDEV(MenuItem, {\n value: \"All\",\n children: \"All Roles\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 325,\n columnNumber: 17\n }, this), Object.entries(ROLES).map(([key, role]) => /*#__PURE__*/_jsxDEV(MenuItem, {\n value: key,\n children: role.name\n }, key, false, {\n fileName: _jsxFileName,\n lineNumber: 327,\n columnNumber: 19\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 3,\n children: /*#__PURE__*/_jsxDEV(FormControl, {\n fullWidth: true,\n children: [/*#__PURE__*/_jsxDEV(InputLabel, {\n children: \"Status\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 334,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(Select, {\n value: statusFilter,\n label: \"Status\",\n onChange: e => setStatusFilter(e.target.value),\n children: [/*#__PURE__*/_jsxDEV(MenuItem, {\n value: \"All\",\n children: \"All Status\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(MenuItem, {\n value: \"active\",\n children: \"Active\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 341,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(MenuItem, {\n value: \"inactive\",\n children: \"Inactive\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 342,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 335,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 301,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 300,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Paper, {\n sx: {\n p: 2\n },\n children: /*#__PURE__*/_jsxDEV(DataGrid, {\n rows: filteredUsers,\n columns: columns,\n pageSize: 10,\n rowsPerPageOptions: [10, 25, 50],\n checkboxSelection: true,\n disableSelectionOnClick: true,\n sx: {\n height: 400\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 351,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 350,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Dialog, {\n open: userDialogOpen,\n onClose: () => setUserDialogOpen(false),\n maxWidth: \"md\",\n fullWidth: true,\n children: [/*#__PURE__*/_jsxDEV(DialogTitle, {\n children: selectedUser ? 'Edit User' : 'Create New User'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 364,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(DialogContent, {\n children: /*#__PURE__*/_jsxDEV(Grid, {\n container: true,\n spacing: 2,\n sx: {\n mt: 1\n },\n children: [/*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 6,\n children: /*#__PURE__*/_jsxDEV(TextField, {\n fullWidth: true,\n label: \"Username\",\n value: newUser.username,\n onChange: e => setNewUser(prev => ({\n ...prev,\n username: e.target.value\n })),\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 370,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 369,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 6,\n children: /*#__PURE__*/_jsxDEV(TextField, {\n fullWidth: true,\n label: \"Email\",\n type: \"email\",\n value: newUser.email,\n onChange: e => setNewUser(prev => ({\n ...prev,\n email: e.target.value\n })),\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 379,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 378,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 6,\n children: /*#__PURE__*/_jsxDEV(TextField, {\n fullWidth: true,\n label: \"Full Name\",\n value: newUser.name,\n onChange: e => setNewUser(prev => ({\n ...prev,\n name: e.target.value\n })),\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 389,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 388,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 6,\n children: /*#__PURE__*/_jsxDEV(TextField, {\n fullWidth: true,\n label: \"Department\",\n value: newUser.department,\n onChange: e => setNewUser(prev => ({\n ...prev,\n department: e.target.value\n }))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 397,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 6,\n children: /*#__PURE__*/_jsxDEV(FormControl, {\n fullWidth: true,\n required: true,\n children: [/*#__PURE__*/_jsxDEV(InputLabel, {\n children: \"Role\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 407,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(Select, {\n value: newUser.role,\n label: \"Role\",\n onChange: e => setNewUser(prev => ({\n ...prev,\n role: e.target.value\n })),\n children: Object.entries(ROLES).map(([key, role]) => /*#__PURE__*/_jsxDEV(MenuItem, {\n value: key,\n children: /*#__PURE__*/_jsxDEV(Box, {\n sx: {\n display: 'flex',\n alignItems: 'center'\n },\n children: [/*#__PURE__*/_jsxDEV(Box, {\n sx: {\n width: 12,\n height: 12,\n borderRadius: '50%',\n bgcolor: role.color,\n mr: 1\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 416,\n columnNumber: 25\n }, this), role.name]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, this)\n }, key, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 408,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 406,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 405,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 6,\n children: /*#__PURE__*/_jsxDEV(FormControl, {\n fullWidth: true,\n children: [/*#__PURE__*/_jsxDEV(InputLabel, {\n children: \"Status\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 434,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(Select, {\n value: newUser.status,\n label: \"Status\",\n onChange: e => setNewUser(prev => ({\n ...prev,\n status: e.target.value\n })),\n children: [/*#__PURE__*/_jsxDEV(MenuItem, {\n value: \"active\",\n children: \"Active\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(MenuItem, {\n value: \"inactive\",\n children: \"Inactive\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 435,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 433,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 432,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n children: /*#__PURE__*/_jsxDEV(Alert, {\n severity: \"info\",\n children: [/*#__PURE__*/_jsxDEV(Typography, {\n variant: \"subtitle2\",\n children: \"Role Permissions:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 447,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(Typography, {\n variant: \"body2\",\n children: ((_ROLES$newUser$role = ROLES[newUser.role]) === null || _ROLES$newUser$role === void 0 ? void 0 : _ROLES$newUser$role.permissions.join(', ')) || 'No permissions'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 448,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 446,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 445,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 368,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(DialogActions, {\n children: [/*#__PURE__*/_jsxDEV(Button, {\n onClick: () => setUserDialogOpen(false),\n children: \"Cancel\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 456,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n variant: \"contained\",\n onClick: handleSaveUser,\n children: selectedUser ? 'Update' : 'Create'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 457,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n};\n_s(UserManagement, \"CcxCdmN7Ar7dXy0nVcsGmImSCBY=\", false, function () {\n return [useAuth];\n});\n_c = UserManagement;\nexport default UserManagement;\nvar _c;\n$RefreshReg$(_c, \"UserManagement\");","map":{"version":3,"names":["React","useState","Grid","Paper","Typography","Box","Button","Chip","IconButton","TextField","InputAdornment","FormControl","InputLabel","Select","MenuItem","Dialog","DialogTitle","DialogContent","DialogActions","Avatar","Alert","Card","CardContent","Search","Add","Edit","Delete","DataGrid","useAuth","ROLES","jsxDEV","_jsxDEV","mockUsers","id","username","email","name","role","department","lastLogin","status","avatar","created","permissions","UserManagement","_s","_ROLES$newUser$role","user","currentUser","users","setUsers","searchTerm","setSearchTerm","roleFilter","setRoleFilter","statusFilter","setStatusFilter","selectedUser","setSelectedUser","userDialogOpen","setUserDialogOpen","tabValue","setTabValue","newUser","setNewUser","columns","field","headerName","width","renderCell","params","sx","height","bgcolor","children","row","charAt","fileName","_jsxFileName","lineNumber","columnNumber","_ROLES$params$row$rol","_ROLES$params$row$rol2","label","size","color","onClick","handleEditUser","handleDeleteUser","userId","window","confirm","filter","u","handleCreateUser","handleSaveUser","map","newId","Math","max","Date","toISOString","split","getRoleStats","stats","Object","keys","forEach","length","filteredUsers","matchesSearch","toLowerCase","includes","matchesRole","matchesStatus","roleStats","display","justifyContent","alignItems","mb","variant","gutterBottom","startIcon","container","spacing","entries","count","_ROLES","_ROLES2","item","xs","sm","md","textAlign","p","fullWidth","placeholder","value","onChange","e","target","InputProps","startAdornment","position","key","rows","pageSize","rowsPerPageOptions","checkboxSelection","disableSelectionOnClick","open","onClose","maxWidth","mt","prev","required","type","borderRadius","mr","severity","join","_c","$RefreshReg$"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/src/pages/Admin/UserManagement.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n Grid,\n Paper,\n Typography,\n Box,\n Button,\n Chip,\n IconButton,\n TextField,\n InputAdornment,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Avatar,\n List,\n ListItem,\n ListItemText,\n ListItemIcon,\n ListItemSecondaryAction,\n Divider,\n Alert,\n Tabs,\n Tab,\n Card,\n CardContent,\n} from '@mui/material';\nimport {\n Search,\n Add,\n Edit,\n Delete,\n Person,\n Email,\n Business,\n Security,\n MoreVert,\n CheckCircle,\n Cancel,\n Warning,\n} from '@mui/icons-material';\nimport { DataGrid } from '@mui/x-data-grid';\nimport { useAuth, ROLES } from '../../components/Auth/AuthContext';\n\nconst mockUsers = [\n {\n id: 1,\n username: 'admin',\n email: 'admin@company.com',\n name: 'System Administrator',\n role: 'ADMIN',\n department: 'IT',\n lastLogin: '2024-01-15 10:30',\n status: 'active',\n avatar: null,\n created: '2024-01-01',\n permissions: ['All Permissions']\n },\n {\n id: 2,\n username: 'john.smith',\n email: 'john.smith@company.com',\n name: 'John Smith',\n role: 'IT_STAFF',\n department: 'Infrastructure',\n lastLogin: '2024-01-15 09:45',\n status: 'active',\n avatar: null,\n created: '2024-01-02',\n permissions: ['Incident Management', 'Problem Management', 'Change Management']\n },\n {\n id: 3,\n username: 'sarah.johnson',\n email: 'sarah.johnson@company.com',\n name: 'Sarah Johnson',\n role: 'MANAGER',\n department: 'IT Operations',\n lastLogin: '2024-01-15 08:20',\n status: 'active',\n avatar: null,\n created: '2024-01-03',\n permissions: ['Reporting', 'Management', 'Approval']\n },\n {\n id: 4,\n username: 'mike.davis',\n email: 'mike.davis@company.com',\n name: 'Mike Davis',\n role: 'IT_STAFF',\n department: 'Applications',\n lastLogin: '2024-01-14 16:30',\n status: 'active',\n avatar: null,\n created: '2024-01-04',\n permissions: ['Incident Management', 'Problem Management']\n },\n {\n id: 5,\n username: 'lisa.wilson',\n email: 'lisa.wilson@company.com',\n name: 'Lisa Wilson',\n role: 'END_USER',\n department: 'HR',\n lastLogin: '2024-01-15 11:15',\n status: 'active',\n avatar: null,\n created: '2024-01-05',\n permissions: ['Self-Service', 'Knowledge Base']\n },\n {\n id: 6,\n username: 'auditor1',\n email: 'auditor1@company.com',\n name: 'Audit Specialist',\n role: 'AUDITOR',\n department: 'Compliance',\n lastLogin: '2024-01-14 14:20',\n status: 'active',\n avatar: null,\n created: '2024-01-06',\n permissions: ['Audit', 'Compliance', 'Reporting']\n }\n];\n\nconst UserManagement: React.FC = () => {\n const { user: currentUser } = useAuth();\n const [users, setUsers] = useState(mockUsers);\n const [searchTerm, setSearchTerm] = useState('');\n const [roleFilter, setRoleFilter] = useState('All');\n const [statusFilter, setStatusFilter] = useState('All');\n const [selectedUser, setSelectedUser] = useState<any>(null);\n const [userDialogOpen, setUserDialogOpen] = useState<boolean>(false);\n const [tabValue, setTabValue] = useState<number>(0);\n const [newUser, setNewUser] = useState({\n username: '',\n email: '',\n name: '',\n role: 'END_USER',\n department: '',\n status: 'active'\n });\n\n const columns = [\n { field: 'id', headerName: 'ID', width: 80 },\n {\n field: 'avatar',\n headerName: 'Avatar',\n width: 80,\n renderCell: (params) => (\n <Avatar sx={{ width: 32, height: 32, bgcolor: 'primary.main' }}>\n {params.row.name.charAt(0)}\n </Avatar>\n ),\n },\n { field: 'name', headerName: 'Name', width: 200 },\n { field: 'username', headerName: 'Username', width: 150 },\n { field: 'email', headerName: 'Email', width: 250 },\n {\n field: 'role',\n headerName: 'Role',\n width: 120,\n renderCell: (params) => (\n <Chip\n label={ROLES[params.row.role]?.name || params.row.role}\n size=\"small\"\n sx={{\n bgcolor: ROLES[params.row.role]?.color || 'default',\n color: 'white'\n }}\n />\n ),\n },\n { field: 'department', headerName: 'Department', width: 150 },\n {\n field: 'status',\n headerName: 'Status',\n width: 100,\n renderCell: (params) => (\n <Chip\n label={params.row.status}\n size=\"small\"\n color={params.row.status === 'active' ? 'success' : 'error'}\n />\n ),\n },\n { field: 'lastLogin', headerName: 'Last Login', width: 150 },\n {\n field: 'actions',\n headerName: 'Actions',\n width: 120,\n renderCell: (params) => (\n <Box>\n <IconButton size=\"small\" onClick={() => handleEditUser(params.row)}>\n <Edit />\n </IconButton>\n <IconButton size=\"small\" onClick={() => handleDeleteUser(params.row.id)}>\n <Delete />\n </IconButton>\n </Box>\n ),\n },\n ];\n\n const handleEditUser = (user) => {\n setSelectedUser(user);\n setNewUser(user);\n setUserDialogOpen(true);\n };\n\n const handleDeleteUser = (userId) => {\n if (window.confirm('Are you sure you want to delete this user?')) {\n setUsers(users.filter(u => u.id !== userId));\n }\n };\n\n const handleCreateUser = () => {\n setSelectedUser(null);\n setNewUser({\n username: '',\n email: '',\n name: '',\n role: 'END_USER',\n department: '',\n status: 'active'\n });\n setUserDialogOpen(true);\n };\n\n const handleSaveUser = () => {\n if (selectedUser) {\n // Update existing user\n setUsers(users.map(u => u.id === selectedUser.id ? { ...newUser, id: selectedUser.id } : u));\n } else {\n // Create new user\n const newId = Math.max(...users.map(u => u.id)) + 1;\n setUsers([...users, { ...newUser, id: newId, created: new Date().toISOString().split('T')[0] }]);\n }\n setUserDialogOpen(false);\n };\n\n const getRoleStats = () => {\n const stats = {};\n Object.keys(ROLES).forEach(role => {\n stats[role] = users.filter(u => u.role === role).length;\n });\n return stats;\n };\n\n const filteredUsers = users.filter(user => {\n const matchesSearch = user.name.toLowerCase().includes(searchTerm.toLowerCase()) ||\n user.username.toLowerCase().includes(searchTerm.toLowerCase()) ||\n user.email.toLowerCase().includes(searchTerm.toLowerCase());\n const matchesRole = roleFilter === 'All' || user.role === roleFilter;\n const matchesStatus = statusFilter === 'All' || user.status === statusFilter;\n return matchesSearch && matchesRole && matchesStatus;\n });\n\n const roleStats = getRoleStats();\n\n return (\n <Box>\n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 3 }}>\n <Typography variant=\"h4\" gutterBottom>\n User Management\n </Typography>\n <Button\n variant=\"contained\"\n startIcon={<Add />}\n onClick={handleCreateUser}\n >\n Add User\n </Button>\n </Box>\n\n {/* Role Statistics */}\n <Grid container spacing={3} sx={{ mb: 3 }}>\n {Object.entries(roleStats).map(([role, count]) => (\n <Grid item xs={12} sm={6} md={2.4} key={role}>\n <Card>\n <CardContent sx={{ textAlign: 'center' }}>\n <Typography variant=\"h4\" sx={{ color: ROLES[role as keyof typeof ROLES]?.color }}>\n {count}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {ROLES[role as keyof typeof ROLES]?.name}\n </Typography>\n </CardContent>\n </Card>\n </Grid>\n ))}\n </Grid>\n\n {/* Filters */}\n <Paper sx={{ p: 2, mb: 3 }}>\n <Grid container spacing={2} alignItems=\"center\">\n <Grid item xs={12} md={4}>\n <TextField\n fullWidth\n placeholder=\"Search users...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <Search />\n </InputAdornment>\n ),\n }}\n />\n </Grid>\n <Grid item xs={12} md={3}>\n <FormControl fullWidth>\n <InputLabel>Role</InputLabel>\n <Select\n value={roleFilter}\n label=\"Role\"\n onChange={(e) => setRoleFilter(e.target.value)}\n >\n <MenuItem value=\"All\">All Roles</MenuItem>\n {Object.entries(ROLES).map(([key, role]) => (\n <MenuItem key={key} value={key}>{role.name}</MenuItem>\n ))}\n </Select>\n </FormControl>\n </Grid>\n <Grid item xs={12} md={3}>\n <FormControl fullWidth>\n <InputLabel>Status</InputLabel>\n <Select\n value={statusFilter}\n label=\"Status\"\n onChange={(e) => setStatusFilter(e.target.value)}\n >\n <MenuItem value=\"All\">All Status</MenuItem>\n <MenuItem value=\"active\">Active</MenuItem>\n <MenuItem value=\"inactive\">Inactive</MenuItem>\n </Select>\n </FormControl>\n </Grid>\n </Grid>\n </Paper>\n\n {/* Users Table */}\n <Paper sx={{ p: 2 }}>\n <DataGrid\n rows={filteredUsers}\n columns={columns}\n pageSize={10}\n rowsPerPageOptions={[10, 25, 50]}\n checkboxSelection\n disableSelectionOnClick\n sx={{ height: 400 }}\n />\n </Paper>\n\n {/* User Dialog */}\n <Dialog open={userDialogOpen} onClose={() => setUserDialogOpen(false)} maxWidth=\"md\" fullWidth>\n <DialogTitle>\n {selectedUser ? 'Edit User' : 'Create New User'}\n </DialogTitle>\n <DialogContent>\n <Grid container spacing={2} sx={{ mt: 1 }}>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Username\"\n value={newUser.username}\n onChange={(e) => setNewUser(prev => ({ ...prev, username: e.target.value }))}\n required\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Email\"\n type=\"email\"\n value={newUser.email}\n onChange={(e) => setNewUser(prev => ({ ...prev, email: e.target.value }))}\n required\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Full Name\"\n value={newUser.name}\n onChange={(e) => setNewUser(prev => ({ ...prev, name: e.target.value }))}\n required\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Department\"\n value={newUser.department}\n onChange={(e) => setNewUser(prev => ({ ...prev, department: e.target.value }))}\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <FormControl fullWidth required>\n <InputLabel>Role</InputLabel>\n <Select\n value={newUser.role}\n label=\"Role\"\n onChange={(e) => setNewUser(prev => ({ ...prev, role: e.target.value }))}\n >\n {Object.entries(ROLES).map(([key, role]) => (\n <MenuItem key={key} value={key}>\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <Box\n sx={{\n width: 12,\n height: 12,\n borderRadius: '50%',\n bgcolor: role.color,\n mr: 1,\n }}\n />\n {role.name}\n </Box>\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </Grid>\n <Grid item xs={12} md={6}>\n <FormControl fullWidth>\n <InputLabel>Status</InputLabel>\n <Select\n value={newUser.status}\n label=\"Status\"\n onChange={(e) => setNewUser(prev => ({ ...prev, status: e.target.value }))}\n >\n <MenuItem value=\"active\">Active</MenuItem>\n <MenuItem value=\"inactive\">Inactive</MenuItem>\n </Select>\n </FormControl>\n </Grid>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n <Typography variant=\"subtitle2\">Role Permissions:</Typography>\n <Typography variant=\"body2\">\n {ROLES[newUser.role]?.permissions.join(', ') || 'No permissions'}\n </Typography>\n </Alert>\n </Grid>\n </Grid>\n </DialogContent>\n <DialogActions>\n <Button onClick={() => setUserDialogOpen(false)}>Cancel</Button>\n <Button variant=\"contained\" onClick={handleSaveUser}>\n {selectedUser ? 'Update' : 'Create'}\n </Button>\n </DialogActions>\n </Dialog>\n </Box>\n );\n}\n\nexport default UserManagement;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}