]> PHS Git Server - phs-admin.git/commitdiff
Adding a disconnect client dialog.
authorcharleswrayjr <charleswrayjr@gmail.com>
Tue, 9 Sep 2025 20:15:38 +0000 (15:15 -0500)
committercharleswrayjr <charleswrayjr@gmail.com>
Tue, 9 Sep 2025 20:15:38 +0000 (15:15 -0500)
src/app/components/VPN/VPNContext.jsx
src/app/services/VPN/VPNService.js
src/app/views/VPN/VPN.jsx

index 66d1fbdab9bb84a1b73cbc9a137041901bc755c6..7692c3c391cdd4582ce8dab44804df52fd52b1f5 100644 (file)
@@ -49,12 +49,15 @@ export const VPNProvider = ( { children } ) => {
     setMessage( await VPNService.revokeClient( { revokeClientName }, fetchClients ) );
     fetchAvailableClients().catch( e => setMessage( e ) );
     setRevokeOpen( false );
+    setRevokeClientName( '' );
   };
 
   const handleDisconnect = async () => {
-    setMessage( await VPNService.disconnect() );
+    setMessage( await VPNService.disconnect( { clientName: revokeClientName, duration}) );
     fetchClients().catch( e => setMessage( e ) );
     setSuspendOpen( false );
+    setDuration( 1 );
+    setRevokeClientName( '' );
   };
 
   useEffect( () => {
index 11feb3f1547a8511494bb8ed038210298ca64990..b2fb1d06bd640b0cb5eef1f83f8005f44cdc2d9f 100644 (file)
@@ -76,10 +76,10 @@ class VPNService {
     } );
   };
 
-  disconnect = () => {
+  disconnect = ( data ) => {
     return new Promise( async ( resolve ) => {
       try {
-        const response = await axios.put( `${ base_url }${ VPNConfig.disconnect }` );
+        const response = await axios.put( `${ base_url }${ VPNConfig.disconnect }`, data );
         resolve( response.data.message );
       } catch (error) {
         resolve( `Error: ${ error.response?.data?.error || 'Failed to disconnect' }` );
index 76936b84bfab2d43ae689aed1f8780b5c68ccbb3..010c784b8ea903a5fe30e243d7c4a33c0bb94ad5 100644 (file)
@@ -11,7 +11,8 @@ const VPN = () => {
     availableClients,
     message,
     setCreateOpen,
-    serverStatus } = useVPN();
+    serverStatus,
+    setSuspendOpen } = useVPN();
   const clientTable = useMaterialReactTable( {
     columns: [
       { accessorKey: 'name', header: 'Name' },
@@ -38,7 +39,7 @@ const VPN = () => {
             }}><BlockIcon/></IconButton>
             <IconButton size='small' color='warning' title='Suspend' onClick={() => {
               setRevokeClientName( row.original.clientName );
-              setRevokeOpen( true );
+              setSuspendOpen( true );
             }}><AccessTimeOutlined/></IconButton>
           </Grid>
         ),