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