@Transactional
    public User updateUser( String pName, String pPasswordOld, String pPassword, String pPasswordBis, String pEmail,
            User pUser ) {
        // TODO Auto-generated method stub
        this.resetErrorsMaps();
        checkName( pName );
        checkEmail( pEmail );
        boolean bIsSet = checkUpdatePassword( pPasswordOld, pPassword, pPasswordBis, pUser );
        User oTestUser = this.rechercherUser( pEmail );
        if ( oTestUser != null && oTestUser.getId() != pUser.getId() ) {
            setServiceError( ERROR_MESSAGE_alreadyExists );
        }
        if ( getFormErrors().isEmpty() && getServiceErrors().isEmpty() ) {
            pUser.setName( pName );
            pUser.setEmail( pEmail );
            if ( bIsSet ) {
                ConfigurablePasswordEncryptor passwordEncryptor = new ConfigurablePasswordEncryptor();
                passwordEncryptor.setAlgorithm( ALGO_CHIFFREMENT );
                passwordEncryptor.setPlainDigest( false );
                String pPasswordEncrypt = passwordEncryptor.encryptPassword( pPassword );
                pUser.setPassword( pPasswordEncrypt );
            }
            dao.updateUser( pUser );
        }
        return pUser;
    }