Admin Runique
L'administration Runique construit un CRUD complet à partir d'un builder typé (ModelAdmin). Plus de macro admin!, plus de génération de fichiers : tu déclares des colonnes SeaORM, le framework sert les routes, la liste, les formulaires et les permissions.
À savoir avant de commencer
-
La feature
adminest obligatoire. Sans elle, le module admin n'est pas compilé :with_admin,ModelAdmin,AdminSiten'existent pas.runique = { version = "4.0.0", features = ["postgres", "admin"] } -
with_public_urlest obligatoire en production quand l'admin est actif : sans elle, le démarrage est refusé (les liens envoyés par mail seraient construits depuis l'en-têteHostde la requête, que n'importe qui peut forger). En debug, leHostde la requête la remplace. -
Tout
model!{}du projet doit être enregistré dans l'admin (register, ouaccounts_userspour l'extension des comptes). Au démarrage, les droits de groupe qui visent un modèle non enregistré sont supprimés de la base. -
Les comptes, groupes et droits du framework sont fournis : vous ne les déclarez pas.
Exemple minimal
use runique::admin::{AdminSite, ModelAdmin};
use runique::app::staging::AdminStaging;
use crate::entities::article;
pub fn config(admin: AdminStaging) -> AdminStaging {
admin
.site_title("Administration")
.path("/admin/")
.site(|site| site.register(articles()))
}
fn articles() -> ModelAdmin<article::Entity> {
use article::Column::*;
ModelAdmin::new()
.title("Articles")
.list(|l| {
l.display([Title, Status, Views])
.links([Title])
.sortable([Title])
.search([Title])
.filter([Status])
})
.form(|f| f.fields([Title, Body, Status]))
}
Puis dans main :
builder::new(config)
.routes(url::routes())
.with_database(db)
.with_admin(admin::config)
.build()
.await?
.run()
.await?;
| Fichier | Contenu |
|---|---|
| Mise en place | Câbler l'admin, path, prefix, superuser |
| Déclaration | AdminStaging, AdminSite, enregistrement |
Builder ModelAdmin | API liste + formulaire, colonnes typées |
| Validation au boot | Contrôles exécutés au démarrage |
| Création d'utilisateur | Flux création → email → activation |
| Vue liste | Pagination, tri, recherche, filtres, actions |
| Permissions | Rangs, groupes, grille de droits |
| Templates | Surcharge des pages et des blocs |
| Évolutions | Pistes futures |