Authentification

Modèle utilisateur

Modèle built-in

Runique inclut un modèle utilisateur prêt à l'emploi, sans aucune configuration.

Table générée : eihwaz_users

ChampTypeDescription
idi32Clé primaire
usernameStringNom d'utilisateur unique
emailStringAdresse email
passwordStringHash Argon2 — jamais en clair
is_activeboolCompte actif
is_staffboolAccès au panneau admin (limité)
is_superuserboolAccès complet, bypass toutes les règles
rolesJSONRôles personnalisés ex. ["editor"]
created_atdatetimeDate de création
updated_atdatetimeDate de mise à jour

Pour créer le premier superutilisateur :

runique create-superuser

Pour accéder au modèle depuis votre code :

use runique::prelude::user::{Model, ActiveModel};

Trait RuniqueUser

Si vous utilisez votre propre modèle utilisateur à la place du built-in, vous devez implémenter RuniqueUser.

use runique::middleware::auth::RuniqueUser;

impl RuniqueUser for users::Model {
    fn user_id(&self) -> i32        { self.id }
    fn username(&self) -> &str      { &self.username }
    fn email(&self) -> &str         { &self.email }
    fn password_hash(&self) -> &str { &self.password }
    fn is_active(&self) -> bool     { self.is_active }
    fn is_staff(&self) -> bool      { self.is_staff }
    fn is_superuser(&self) -> bool  { self.is_superuser }

    // Optionnel — rôles personnalisés
    fn roles(&self) -> Vec<String> {
        self.roles.clone().unwrap_or_default()
    }

    // Optionnel — logique d'accès admin sur mesure
    fn can_access_admin(&self) -> bool {
        self.is_active() && (self.is_staff() || self.is_superuser())
    }
}

Méthodes obligatoires

MéthodeRetourDescription
user_id()i32Identifiant unique
username()&strNom d'utilisateur
email()&strAdresse email
password_hash()&strHash du mot de passe
is_active()boolCompte actif
is_staff()boolAccès admin limité
is_superuser()boolAccès admin complet

Méthodes avec valeur par défaut

MéthodeDéfautDescription
roles()vec![]Rôles personnalisés
can_access_admin()is_active && (is_staff || is_superuser)Logique d'accès admin