Enforce mimetype check on backend
This commit is contained in:
		| @@ -1,4 +1,5 @@ | ||||
| use crate::controllers::HttpResult; | ||||
| use crate::controllers::server_controller::ServerConstraints; | ||||
| use crate::extractors::auth_extractor::AuthExtractor; | ||||
| use crate::extractors::file_extractor::FileExtractor; | ||||
| use crate::extractors::file_id_extractor::FileIdExtractor; | ||||
| @@ -12,6 +13,21 @@ use std::time::Duration; | ||||
|  | ||||
| /// Upload a new file | ||||
| pub async fn upload(auth: AuthExtractor, file: FileExtractor) -> HttpResult { | ||||
|     // Check file mimetype | ||||
|     if !ServerConstraints::default() | ||||
|         .file_allowed_types | ||||
|         .contains(&file.mime.as_ref()) | ||||
|     { | ||||
|         log::error!( | ||||
|             "User attempted to upload a file with invalid mimetype! {}", | ||||
|             file.mime | ||||
|         ); | ||||
|         return Ok(HttpResponse::BadRequest().body(format!( | ||||
|             "Files with mimetype {} cannot be uploaded!", | ||||
|             file.mime | ||||
|         ))); | ||||
|     } | ||||
|  | ||||
|     let file = files_service::create_file_with_mimetype( | ||||
|         auth.user_id(), | ||||
|         &file.name(), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user