T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/domains/lavocat.quebec/private_html/src/components/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.quebec/private_html/src/components/ManualVerificationUpload.tsx
import { useState } from 'react';
import { Box, Button, Input, Text } from '@chakra-ui/react';

export default function ManualVerificationUpload({ email, name, language, onClose }: { email: string, name: string, language: 'en' | 'fr', onClose?: () => void }) {
  const [file, setFile] = useState<File | null>(null);
  const [isUploading, setIsUploading] = useState(false);
  const [success, setSuccess] = useState('');
  const [error, setError] = useState('');

  const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {
    setFile(e.target.files?.[0] || null);
    setError('');
    setSuccess('');
  };

  const handleUpload = async () => {
    if (!file) {
      setError('Veuillez sélectionner un document.');
      return;
    }
    setIsUploading(true);
    setError('');
    setSuccess('');
    const formData = new FormData();
    formData.append('file', file);
    formData.append('email', email);
    formData.append('name', name);

    const res = await fetch('/api/lawyer/manual-verification', {
      method: 'POST',
      body: formData,
    });

    if (res.ok) {
      setSuccess('Document envoyé avec succès. Un administrateur va vérifier votre dossier.');
      setFile(null);
    } else {
      setError('Erreur lors de l’envoi du document. Veuillez réessayer.');
    }
    setIsUploading(false);
  };

  return (
    <Box mt={6} p={4} borderWidth={1} borderRadius="md" bg="gray.50">
      <Text fontWeight="bold" mb={2}>Vérification manuelle</Text>
      <Text mb={2}>Téléversez un document officiel prouvant votre appartenance au Barreau (PDF, image, etc.).</Text>
      <Input type="file" accept=".pdf,.jpg,.jpeg,.png" onChange={handleFileChange} mb={2} />
      <Button onClick={handleUpload} colorScheme="blue" disabled={!file || isUploading}>
        {isUploading ? 'Envoi en cours...' : 'Envoyer le document'}
      </Button>
      {success && <Text color="green.600" mt={2}>{success}</Text>}
      {error && <Text color="red.600" mt={2}>{error}</Text>}
      {onClose && (
        <Button onClick={onClose} mt={2} colorScheme="gray">
          Fermer
        </Button>
      )}
    </Box>
  );
} 

CasperSecurity Mini