import React from 'react'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { loginAs, logout } from 'src/actions/Session/sessionActions'; import Container from '../ControlPanel/Container/Container'; import ListItem from '../ControlPanel/ListItem/ListItem'; import { useDispatch, useSelector } from 'react-redux'; import { Link } from 'react-router-dom'; import './User.scss'; const User = ({ data, toggleFav, handleModal, checkItem }) => { const { i18n, userName } = useSelector(state => state.session); const session = useSelector(state => state.session); const dispatch = useDispatch(); const printNameServers = servers => { let serversArray = servers.split(','); return serversArray.map( (server, index) =>
{server}
); } const signInAs = username => { dispatch(loginAs(username)); } const signOut = () => { dispatch(logout()); } const printLoginActionButton = user => { let currentUser = session.userName; if (currentUser === user) { return (
); } else { return (
); } } const toggleFavorite = (starred) => { if (starred) { toggleFav(data.NAME, 'add'); } else { toggleFav(data.NAME, 'delete'); } } const checkItemName = () => { checkItem(data.NAME); } const handleSuspend = () => { let suspendedStatus = data.SUSPENDED === 'yes' ? 'unsuspend' : 'suspend'; handleModal(data.spnd_conf, `/api/v1/${suspendedStatus}/user/index.php?user=${data.NAME}`); } const handleDelete = () => { handleModal(data.delete_conf, `/api/v1/delete/user/index.php?user=${data.NAME}`); } return (
{data.NAME}
{data.FNAME} {data.LNAME}
{i18n.Bandwidth} {data.U_BANDWIDTH} {i18n.mb}
{i18n.Disk}: {data.U_DISK} {i18n.mb}
{i18n.Web}: {data.U_DISK_WEB} {i18n.mb}
{i18n.Mail}: {data.U_DISK_MAIL} {i18n.mb}
{i18n.Databases}: {data.U_DATABASES} {i18n.mb}
{i18n['User Directories']}: {data.U_DISK_DIRS} {i18n.mb}
{i18n['Web Domains']}: {data.U_WEB_DOMAINS} / {data.WEB_DOMAINS}
{i18n['DNS Domains']}: {data.U_DNS_DOMAINS} / {data.DNS_DOMAINS}
{i18n['Mail Domains']}: {data.U_MAIL_DOMAINS} / {data.MAIL_DOMAINS}
{i18n.Databases}: {data.U_DATABASES} / {data.DATABASES}
{i18n['Cron Jobs']}: {data.U_CRON_JOBS} / {data.CRON_JOBS}
{i18n.Backups}: {data.U_BACKUPS} / {data.BACKUPS}
{i18n.Email}: {data.CONTACT}
{i18n.Package}: {data.PACKAGE}
{i18n['SSH Access']}: {data.SHELL}
{i18n['IP Addresses']}: {data.IP_OWNED}
{i18n['Name Servers']}: {printNameServers(data.NS)}
{printLoginActionButton(data.NAME)}
{i18n.edit} {data.FOCUSED ? : }
); } export default User;