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
idPkClé primaire (i32 par défaut, i64 avec la feature big-pk)
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
rolesStringRôles personnalisés (nullable)
created_atdatetimeDate de création
updated_atdatetimeDate de mise à jour

Pour créer le premier superutilisateur :

runique create-superuser

Clé primaire i64 (BigAutoField)

Par défaut, la clé primaire est un i32. Pour passer à i64 :

# Cargo.toml du projet
runique = { version = "...", features = ["big-pk"] }

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;
use runique::prelude::Pk;

impl RuniqueUser for users::Model {
    fn user_id(&self) -> Pk      { 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 — 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()PkIdentifiant 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