diff --git a/api/controllers/users.js b/api/controllers/users.js index de0fd7f..329f2da 100644 --- a/api/controllers/users.js +++ b/api/controllers/users.js @@ -56,7 +56,7 @@ exports.putUser = (req, res, next) => { logo.mimetype !== 'image/jpeg' || logo.mimetype !== 'image/gif' )) { - return errorHandling(next, { message:"Le profil doit avoir une image valide.", statusCode: 400 }); + return errorHandling(next, { message:"Le profil doit avoir une image valide (PNG, JPG, GIF) et moins de 5mo.", statusCode: 400 }); } const logoName = name + req.userId + uuid.v4() + logo.name; // Supprime les anciens logo diff --git a/api/models/users.js b/api/models/users.js index c1d794c..f2755ff 100644 --- a/api/models/users.js +++ b/api/models/users.js @@ -22,6 +22,7 @@ module.exports = sequelize.define('user', { }, biography: { type: Sequelize.TEXT, + defaultValue: "" }, logo: { type: Sequelize.STRING, diff --git a/website/contexts/UserContext.js b/website/contexts/UserContext.js index 36f0cb2..aa4667f 100644 --- a/website/contexts/UserContext.js +++ b/website/contexts/UserContext.js @@ -14,45 +14,56 @@ function UserContextProvider(props) { const [messageLogin, setMessageLogin] = useState(""); useEffect(() => { - const user = cookies.get('user'); - setUser(user); - if (user != undefined) { + const newUser = cookies.get('user'); + if (newUser != undefined) { setIsAuth(true); + setUser(newUser); } }, []); - const loginUser = ({ email, password }) => { - setLoginLoading(true); - api.post('/users/login', { email, password }) - .then((response) => { - const user = response.data; - changeUserValue(user); - setIsAuth(true); - setMessageLogin('
Succès: Connexion réussi!
'); - setLoginLoading(false); - }) - .catch((error) => { - setMessageLogin(`Erreur: ${error.response.data.message}
`); - setLoginLoading(false); - setIsAuth(false); - setUser(null); - }); - } + useEffect(() => { + if (isAuth) { + setMessageLogin('Erreur: Vous devez être déconnecter avant de vous connecter.
'); + } else { + setMessageLogin(""); + } + }, [isAuth]); const logoutUser = () => { - cookies.remove('user'); + cookies.remove('user', { path: '/' }); setUser(null); setIsAuth(false); } - const changeUserValue = (user) => { - cookies.remove('user'); - cookies.set('user', user); - setUser(user); + const changeUserValue = (newUser) => { + cookies.remove('user', { path: '/' }); + cookies.set('user', newUser, { path: '/' }); + setUser(newUser); + } + + const loginUser = ({ email, password }) => { + setLoginLoading(true); + return new Promise(async (next) => { + try { + const response = await api.post('/users/login', { email, password }); + const newUser = response.data; + changeUserValue(newUser); + setIsAuth(true); + setMessageLogin('Succès: Connexion réussi!
'); + setLoginLoading(false); + return next({ isSuccess: true, newUser }); + } catch (error) { + setMessageLogin(`Erreur: ${error.response.data.message}
`); + setLoginLoading(false); + setIsAuth(false); + setUser(null); + return next({ isSuccess: false }); + } + }); } return ( -(Vous devrez vous reconnecter après la sauvegarde)
Si vous changez votre adresse email, vous devrez la confirmer (vérifier vos emails).
(Vous devrez vous reconnecter après la sauvegarde)
Si vous changez votre adresse email, vous devrez la confirmer comme à l'inscription (vérifier vos emails).
Si aucun fichier est choisi, le logo ne sera pas modifié.