Logo

Connexion

Connectez-vous pour accéder à votre profil.
formulaire/login.rs formulaire
// Formulaire manuel — pas de modele, pas de clean
pub struct LoginForm {
    pub form: Forms,
}

impl RuniqueForm for LoginForm {
    fn register_fields(form: &mut Forms) {
        form.field(
            &TextField::text("username")
                .label("Nom d'utilisateur")
                .required(),
        );
        form.field(
            &TextField::password("password")
                .label("Mot de passe")
                .required(),
        );
    }

    // Pas de clean — impl_form_access!() suffit
    impl_form_access!();
}
formulaire/login.rs formulaire
// Formulaire manuel — pas de modele, pas de clean
pub struct LoginForm {
    pub form: Forms,
}

impl RuniqueForm for LoginForm {
    fn register_fields(form: &mut Forms) {
        form.field(
            &TextField::text("username")
                .label("Nom d'utilisateur")
                .required(),
        );
        form.field(
            &TextField::password("password")
                .label("Mot de passe")
                .required(),
        );
    }

    // Pas de clean — impl_form_access!() suffit
    impl_form_access!();
}
handler handler
pub async fn login(
    mut request: Request,
    Prisme(form): Prisme<LoginForm>,
) -> AppResult<Response> {
    if request.is_post() {
        let user_opt = UserEntity::find()
            .filter(Column::Username.eq(&username))
            .one(&db).await?;

        match user_opt {
            Some(user) if verify(&password, &user.password) => {
                auth_login(&session, user.id, &user.username).await;
                return Ok(Redirect::to("/profil").into_response());
            }
            _ => {}
        }
    }
    request.render("auth/login.html")
}
handler handler
pub async fn login(
    mut request: Request,
    Prisme(form): Prisme<LoginForm>,
) -> AppResult<Response> {
    if request.is_post() {
        let user_opt = UserEntity::find()
            .filter(Column::Username.eq(&username))
            .one(&db).await?;

        match user_opt {
            Some(user) if verify(&password, &user.password) => {
                auth_login(&session, user.id, &user.username).await;
                return Ok(Redirect::to("/profil").into_response());
            }
            _ => {}
        }
    }
    request.render("auth/login.html")
}