Logo

Configuration admin

Activer et configurer le panneau admin.

Activer l'admin dans le builder main.rs
RuniqueApp::builder(config)
    .with_admin(|a| {
        a.site_title("Mon Administration")
         .auth(RuniqueAdminAuth::new())
         .routes(admins::routes("/admin"))
         // Dashboard personnalise (optionnel)
         .templates(|t| t.with_dashboard("admin/mon_dashboard.html"))
         .with_state(admins::admin_state())
    })
Activer l'admin dans le builder main.rs
RuniqueApp::builder(config)
    .with_admin(|a| {
        a.site_title("Mon Administration")
         .auth(RuniqueAdminAuth::new())
         .routes(admins::routes("/admin"))
         // Dashboard personnalise (optionnel)
         .templates(|t| t.with_dashboard("admin/mon_dashboard.html"))
         .with_state(admins::admin_state())
    })
Authentification admin — RuniqueAdminAuth admins/auth.rs
// RuniqueAdminAuth verifie que l''utilisateur connecte
// a le role declare dans permissions de la ressource.

// Personnaliser l''auth (optionnel) :
pub struct MonAdminAuth;

#[async_trait]
impl AdminAuth for MonAdminAuth {
    async fn is_authorized(&self, session: &Session, role: &str) -> bool {
        let user_role = session.get::<String>("role").await.ok().flatten();
        user_role.as_deref() == Some(role)
    }
}

// Dans le builder :
.auth(MonAdminAuth)
Authentification admin — RuniqueAdminAuth admins/auth.rs
// RuniqueAdminAuth verifie que l''utilisateur connecte
// a le role declare dans permissions de la ressource.

// Personnaliser l''auth (optionnel) :
pub struct MonAdminAuth;

#[async_trait]
impl AdminAuth for MonAdminAuth {
    async fn is_authorized(&self, session: &Session, role: &str) -> bool {
        let user_role = session.get::<String>("role").await.ok().flatten();
        user_role.as_deref() == Some(role)
    }
}

// Dans le builder :
.auth(MonAdminAuth)
URL generees automatiquement
// Pour chaque ressource declaree dans admin! :
GET    /admin/                    → tableau de bord
GET    /admin/article/            → liste
GET    /admin/article/create/     → formulaire de creation
POST   /admin/article/create/     → traitement creation
GET    /admin/article/{id}/edit/  → formulaire d''edition
POST   /admin/article/{id}/edit/  → traitement edition
POST   /admin/article/{id}/delete/ → suppression
URL generees automatiquement
// Pour chaque ressource declaree dans admin! :
GET    /admin/                    → tableau de bord
GET    /admin/article/            → liste
GET    /admin/article/create/     → formulaire de creation
POST   /admin/article/create/     → traitement creation
GET    /admin/article/{id}/edit/  → formulaire d''edition
POST   /admin/article/{id}/edit/  → traitement edition
POST   /admin/article/{id}/delete/ → suppression