Expand description
§actix-web-admin
A powerful admin panel library for Actix-web 4 with a pluggable authentication system.
§Quick Start
use actix_web::{web, App, HttpServer};
use actix_session::storage::CookieSessionStore;
use actix_session::SessionMiddleware;
use actix_web_admin::auth::{UserStore, JsonUserStore};
use actix_web_admin::{AdminRegistry, AdminSite, init_templates};
use std::sync::Arc;
#[actix_web::main]
async fn main() -> std::io::Result<()> {
let templates = init_templates();
let store = Arc::new(JsonUserStore::new("users.json"));
if store.find_by_username("admin").await.unwrap().is_none() {
store.create_user("admin", "admin@example.com", "Admin", "admin", true).await.unwrap();
}
HttpServer::new(move || {
let mut registry = AdminRegistry::new();
// Register your resources...
App::new()
.app_data(web::Data::new(templates.clone()))
.app_data(web::Data::new(store.clone() as Arc<dyn UserStore>))
.wrap(SessionMiddleware::new(CookieSessionStore::default(), actix_web::cookie::Key::generate()))
.configure(|cfg| {
AdminSite::new("/admin")
.with_user_store(store.clone())
.mount(cfg, registry)
})
})
.bind(("127.0.0.1", 8080))?
.run()
.await
}Re-exports§
pub use resource::AdminResource;pub use registry::AdminRegistry;pub use site::AdminSite;
Modules§
Functions§
- init_
templates - Helper to create a Tera instance with embedded templates.