import React, { useState } from 'react'; import { useAuth } from '../context/AuthContext'; import { useNavigate } from 'react-router-dom'; import { Building2, AlertTriangle } from 'lucide-react'; const Login = () => { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [showPassword, setShowPassword] = useState(false); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(''); const [authMethod, setAuthMethod] = useState(''); const navigate = useNavigate(); const { login, loginWithO365 } = useAuth(); const handleSubmit = async (e) => { e.preventDefault(); setIsLoading(true); setError(''); setAuthMethod('local'); try { const success = await login(email, password); if (success) { navigate('/dashboard'); } else { setError('Identifiants incorrects. Veuillez réessayer.'); } } catch (error) { setError(error.message || 'Erreur lors de la connexion'); } setIsLoading(false); }; const handleO365Login = async () => { setIsLoading(true); setError(''); setAuthMethod('o365'); try { const success = await loginWithO365(); if (!success) { setError("Erreur lors de la connexion Office 365"); setIsLoading(false); return; } navigate('/dashboard'); } catch (error) { console.error('Erreur O365:', error); if (error.message?.includes('non autorisé') || error.message?.includes('Accès refusé')) { setError('Accès refusé : Vous devez être membre d\'un groupe autorisé dans votre organisation.'); } else if (error.message?.includes('AADSTS')) { setError('Erreur d\'authentification Azure AD. Contactez votre administrateur.'); } else { setError(error.message || "Erreur lors de la connexion Office 365"); } } setIsLoading(false); }; return (
GESTION DES TEMPS ET DES ACTIVITÉS
{error.includes('Accès refusé') ? 'Accès refusé' : 'Erreur de connexion'}
{error}
{error.includes('groupe autorisé') && (Contactez votre administrateur pour être ajouté aux groupes appropriés.
)}