예제 #1
0
def inscription_token(token):
    utilisateur = Utilisateur.objects(token=token).first()
    if Utilisateur.verifify_token(token) == 1:
        flash('Merci, votre inscription a été validée.')
        return redirect(url_for('login', token=token))
    elif Utilisateur.verifify_token(token) == 0:
        send_confirmation_to(utilisateur, request.host_url)
        flash("Un nouveau mail de confirmation vous a été envoyé",
              category='info')
        return redirect(url_for('login', token=token))
    else:
        utilisateur.delete()
        flash("Vous devez vous inscrire à nouveau", category='error')
        return redirect(url_for('inscription'))
예제 #2
0
class VoeuxForm(FlaskForm):
    universite_1 = SelectField("Université:", choices=Universite.get_choices(), coerce=ObjectId, validators=[DataRequired()])
    universite_2 = SelectField("Université:", choices=Universite.get_choices(), coerce=ObjectId, validators=[DataRequired()])
    semestre_1 = SelectField("Semestre:", choices=Voeu.get_semestre_choices(), validators=[DataRequired()])
    semestre_2 = SelectField("Semestre:", choices=Voeu.get_semestre_choices(), validators=[DataRequired()])
    annee = SelectField("Année:", choices=Utilisateur.get_annee_choices(), validators=[DataRequired()])
    submit = SubmitField("Soumettre")
예제 #3
0
def inscription():
    form = RegistrationForm()
    if form.validate_on_submit():
        flash('Un mail vous a été envoyé.')
        utilisateur = Utilisateur(
            nom=form.nom.data,
            prenom=form.prenom.data,
            mail=form.email.data,
            departement=form.departement.data,
            niveau=form.niveau.data,
            mobilites=[] if form.mobilite_is_non() else [form.mobilite.data],
            password=generate_password_hash(form.mdp.data))
        if Utilisateur.objects(mail=form.email.data).first():
            flash("Il y a déjà un compte associé à cette adresse email",
                  category='error')
        else:
            send_confirmation_to(utilisateur, request.host_url)
            return redirect(url_for('login', token=utilisateur.token))
    return render_template('auth/inscription.html', form=form)
예제 #4
0
def login(token=None):
    utilisateur = Utilisateur.objects(token=token).first() if token else None
    form = LoginForm(email=utilisateur.mail if utilisateur else "")
    if request.method == 'POST' and form.validate_on_submit():
        utilisateur = Utilisateur.objects(mail=form.email.data).first()
        if utilisateur:
            if utilisateur.validate_login(form.mdp.data):
                if utilisateur.is_active:
                    if login_user(utilisateur, form.remember_me.data):
                        flash("Vous êtes connecté", category='success')
                        return redirect(
                            request.args.get("next") or url_for("index"))
                else:
                    flash("Votre inscription n'est pas confirmée",
                          category='error')
                    return redirect(
                        url_for('inscription_token', token=utilisateur.token))
            else:
                flash("Email ou mot de passe erroné", category='error')
        else:
            flash("Pas de compte associé à cette adresse email",
                  category='error')
    return render_template('auth/login.html', form=form)
예제 #5
0
class ProfileForm(FlaskForm):
    non = ObjectId('666f6f2d6261722d71757578')
    prenom = StringField('Prénom', validators=[DataRequired()])
    nom = StringField('Nom', validators=[DataRequired()])
    email = StringField('Email', validators=[DataRequired(), Email()])
    departement = SelectField('Département INSA',
                              choices=Departement.get_choices(),
                              coerce=ObjectId,
                              validators=[DataRequired()])
    niveau = SelectField('Année d\'études',
                         choices=Utilisateur.get_annee_choices(),
                         validators=[DataRequired()])
    choix_mobilite = Universite.get_choices()
    choix_mobilite.append((non, 'Non'))
    choix_mobilite.reverse()
    mobilite = SelectField(
        'J\'ai déjà effectué une mobilité internationale : ',
        choices=choix_mobilite,
        coerce=ObjectId,
        validators=[DataRequired()])

    def mobilite_is_non(self):
        return self.mobilite.data == self.__class__.non
예제 #6
0
 def __init__(self, universite):
     us = Utilisateur.objects(voeux_annee__exists=True)
     self.universite = universite
     self._vx_1_by_with_smstr = [(u, u.voeu_1.semestre) for u in us if self.universite == u.voeu_1.universite]
     self._vx_2_by_with_smstr = [(u, u.voeu_2.semestre) for u in us if self.universite == u.voeu_2.universite]
예제 #7
0
from web import create_app
from dao import Utilisateur, StdUserProxy

app = create_app(config='../local.cfg')
StdUserProxy.set(Utilisateur.get_root())

with app.app_context():
    import web.auth
    import web.frontend

if __name__ == '__main__':
    app.run()
예제 #8
0
def reinitialiser_mdp(token):
    utilisateur = Utilisateur.objects(token=token).first()
    form = ResetPasswordForm(email=utilisateur.mail)
    if request.method == 'POST' and form.validate_on_submit():
        send_confirmation_to(utilisateur.mail, request.host_url)
    return render_template('auth/reinit_mdp.html', form=form)