Add assets route
This commit is contained in:
		
							
								
								
									
										694
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										694
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -7,6 +7,8 @@ edition = "2021"
 | 
			
		||||
 | 
			
		||||
[dependencies]
 | 
			
		||||
rocket = "0.5.0-rc.1"
 | 
			
		||||
rocket_dyn_templates = { version = "0.1.0-rc.1", features = ["tera"] }
 | 
			
		||||
include_dir = "0.7.2"
 | 
			
		||||
log = "0.4.16"
 | 
			
		||||
serde_json = "1.0.79"
 | 
			
		||||
env_logger = "0.9.0"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11562
									
								
								assets/css/bootstrap.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										11562
									
								
								assets/css/bootstrap.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										5
									
								
								assets/css/login.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								assets/css/login.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Login page
 | 
			
		||||
 *
 | 
			
		||||
 * @author Pierre Hubert
 | 
			
		||||
 */
 | 
			
		||||
							
								
								
									
										22
									
								
								src/controllers/assets_controller.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/controllers/assets_controller.rs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
use std::path::PathBuf;
 | 
			
		||||
 | 
			
		||||
use include_dir::{Dir, include_dir};
 | 
			
		||||
use rocket::http::{ContentType, Status};
 | 
			
		||||
 | 
			
		||||
/// Assets directory
 | 
			
		||||
static ASSETS_DIR: Dir = include_dir!("$CARGO_MANIFEST_DIR/assets");
 | 
			
		||||
 | 
			
		||||
#[get("/<file..>")]
 | 
			
		||||
pub fn assets_route(file: PathBuf) -> (Status, (ContentType, &'static [u8])) {
 | 
			
		||||
    match ASSETS_DIR.get_file(file) {
 | 
			
		||||
        None =>
 | 
			
		||||
            (Status::NotFound, (ContentType::Text, "404 Not found".as_bytes())),
 | 
			
		||||
        Some(file) => {
 | 
			
		||||
            (Status::Ok, (
 | 
			
		||||
                ContentType::from_extension(file.path().extension().unwrap_or_default()
 | 
			
		||||
                    .to_string_lossy().as_ref())
 | 
			
		||||
                    .unwrap_or(ContentType::Binary),
 | 
			
		||||
                file.contents()))
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								src/controllers/mod.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/controllers/mod.rs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
pub mod assets_controller;
 | 
			
		||||
@@ -1,3 +1,8 @@
 | 
			
		||||
#[macro_use]
 | 
			
		||||
extern crate rocket;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
pub mod data;
 | 
			
		||||
pub mod utils;
 | 
			
		||||
pub mod constants;
 | 
			
		||||
pub mod controllers;
 | 
			
		||||
@@ -7,6 +7,7 @@ use basic_oidc::constants::{DEFAULT_ADMIN_PASSWORD, DEFAULT_ADMIN_USERNAME};
 | 
			
		||||
use basic_oidc::data::app_config::AppConfig;
 | 
			
		||||
use basic_oidc::data::entity_manager::EntityManager;
 | 
			
		||||
use basic_oidc::data::user::{hash_password, User};
 | 
			
		||||
use basic_oidc::controllers::assets_controller::assets_route;
 | 
			
		||||
 | 
			
		||||
#[get("/health")]
 | 
			
		||||
fn index() -> &'static str {
 | 
			
		||||
@@ -19,6 +20,7 @@ async fn main() -> Result<(), rocket::Error> {
 | 
			
		||||
 | 
			
		||||
    let rocket = rocket::build()
 | 
			
		||||
        .mount("/", routes![index])
 | 
			
		||||
        .mount("/assets", routes![assets_route])
 | 
			
		||||
        .attach(AdHoc::config::<AppConfig>());
 | 
			
		||||
    let figment = rocket.figment();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user