fix: whitelist status code
closes https://github.com/v0l/route96/issues/5
This commit is contained in:
parent
5bebb71f4d
commit
ff423e8dd9
@ -1,6 +1,3 @@
|
|||||||
use std::collections::HashMap;
|
|
||||||
use std::fs;
|
|
||||||
|
|
||||||
use log::error;
|
use log::error;
|
||||||
use nostr::prelude::hex;
|
use nostr::prelude::hex;
|
||||||
use nostr::{Alphabet, SingleLetterTag, TagKind};
|
use nostr::{Alphabet, SingleLetterTag, TagKind};
|
||||||
@ -10,6 +7,8 @@ use rocket::response::Responder;
|
|||||||
use rocket::serde::json::Json;
|
use rocket::serde::json::Json;
|
||||||
use rocket::{routes, Data, Request, Response, Route, State};
|
use rocket::{routes, Data, Request, Response, Route, State};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
use std::collections::HashMap;
|
||||||
|
use std::fs;
|
||||||
|
|
||||||
use crate::auth::blossom::BlossomAuth;
|
use crate::auth::blossom::BlossomAuth;
|
||||||
use crate::db::{Database, FileUpload};
|
use crate::db::{Database, FileUpload};
|
||||||
@ -84,6 +83,9 @@ enum BlossomResponse {
|
|||||||
BlobDescriptorList(Json<Vec<BlobDescriptor>>),
|
BlobDescriptorList(Json<Vec<BlobDescriptor>>),
|
||||||
|
|
||||||
StatusOnly(Status),
|
StatusOnly(Status),
|
||||||
|
|
||||||
|
#[response(status = 403)]
|
||||||
|
Forbidden(Json<BlossomError>),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl BlossomResponse {
|
impl BlossomResponse {
|
||||||
@ -269,7 +271,9 @@ async fn process_upload(
|
|||||||
// check whitelist
|
// check whitelist
|
||||||
if let Some(wl) = &settings.whitelist {
|
if let Some(wl) = &settings.whitelist {
|
||||||
if !wl.contains(&auth.event.pubkey.to_hex()) {
|
if !wl.contains(&auth.event.pubkey.to_hex()) {
|
||||||
return BlossomResponse::error("Not on whitelist");
|
return BlossomResponse::Forbidden(Json(BlossomError::new(
|
||||||
|
"Not on whitelist".to_string(),
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
match fs
|
match fs
|
||||||
|
@ -76,23 +76,18 @@ enum Nip96Response {
|
|||||||
|
|
||||||
#[response(status = 200)]
|
#[response(status = 200)]
|
||||||
FileList(Json<PagedResult<Nip94Event>>),
|
FileList(Json<PagedResult<Nip94Event>>),
|
||||||
|
|
||||||
|
#[response(status = 403)]
|
||||||
|
Forbidden(Json<Nip96UploadResult>),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Nip96Response {
|
impl Nip96Response {
|
||||||
pub(crate) fn error(msg: &str) -> Self {
|
pub(crate) fn error(msg: &str) -> Self {
|
||||||
Nip96Response::GenericError(Json(Nip96UploadResult {
|
Nip96Response::GenericError(Json(Nip96UploadResult::error(msg)))
|
||||||
status: "error".to_string(),
|
|
||||||
message: Some(msg.to_string()),
|
|
||||||
..Default::default()
|
|
||||||
}))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn success(msg: &str) -> Self {
|
fn success(msg: &str) -> Self {
|
||||||
Nip96Response::UploadResult(Json(Nip96UploadResult {
|
Nip96Response::UploadResult(Json(Nip96UploadResult::success(msg)))
|
||||||
status: "success".to_string(),
|
|
||||||
message: Some(msg.to_string()),
|
|
||||||
..Default::default()
|
|
||||||
}))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,6 +111,22 @@ impl Nip96UploadResult {
|
|||||||
..Default::default()
|
..Default::default()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn success(msg: &str) -> Self {
|
||||||
|
Nip96UploadResult {
|
||||||
|
status: "error".to_string(),
|
||||||
|
message: Some(msg.to_string()),
|
||||||
|
..Default::default()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn error(msg: &str) -> Self {
|
||||||
|
Nip96UploadResult {
|
||||||
|
status: "error".to_string(),
|
||||||
|
message: Some(msg.to_string()),
|
||||||
|
..Default::default()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(FromForm)]
|
#[derive(FromForm)]
|
||||||
@ -194,7 +205,7 @@ async fn upload(
|
|||||||
// check whitelist
|
// check whitelist
|
||||||
if let Some(wl) = &settings.whitelist {
|
if let Some(wl) = &settings.whitelist {
|
||||||
if !wl.contains(&auth.event.pubkey.to_hex()) {
|
if !wl.contains(&auth.event.pubkey.to_hex()) {
|
||||||
return Nip96Response::error("Not on whitelist");
|
return Nip96Response::Forbidden(Json(Nip96UploadResult::error("Not on whitelist")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
match fs
|
match fs
|
||||||
|
Loading…
x
Reference in New Issue
Block a user