Admin Runique
Documentation / Admin Runique / Admin Runique

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 admin est obligatoire. Sans elle, le module admin n'est pas compilé : with_admin, ModelAdmin, AdminSite n'existent pas.

    runique = { version = "4.0.0", features = ["postgres", "admin"] }
    
  • with_public_url est 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ête Host de la requête, que n'importe qui peut forger). En debug, le Host de la requête la remplace.

  • Tout model!{} du projet doit être enregistré dans l'admin (register, ou accounts_users pour 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?;
FichierContenu
Mise en placeCâbler l'admin, path, prefix, superuser
DéclarationAdminStaging, AdminSite, enregistrement
Builder ModelAdminAPI liste + formulaire, colonnes typées
Validation au bootContrôles exécutés au démarrage
Création d'utilisateurFlux création → email → activation
Vue listePagination, tri, recherche, filtres, actions
PermissionsRangs, groupes, grille de droits
TemplatesSurcharge des pages et des blocs
ÉvolutionsPistes futures

Revenir au menu