From 5ecb71ce9d1025c8cee2b38df05ea3e60e64fed2 Mon Sep 17 00:00:00 2001 From: Ethan Girouard Date: Sun, 24 Nov 2024 14:36:56 -0500 Subject: [PATCH 1/2] Return error on /api/signup if signup disabled --- src/auth.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/auth.rs b/src/auth.rs index cea063b..f28eeb4 100644 --- a/src/auth.rs +++ b/src/auth.rs @@ -19,6 +19,11 @@ use crate::users::UserCredentials; /// Returns a Result with the error message if the user could not be created #[server(endpoint = "signup")] pub async fn signup(new_user: User) -> Result<(), ServerFnError> { + // Check LIBRETUNES_DISABLE_SIGNUP env var + if std::env::var("LIBRETUNES_DISABLE_SIGNUP").is_ok_and(|v| v == "true") { + return Err(ServerFnError::::ServerError("Signup is disabled".to_string())); + } + use crate::users::create_user; // Ensure the user has no id, and is not a self-proclaimed admin From 97f50b38c50dfe98adfb717e6f82d7990a7c2cd8 Mon Sep 17 00:00:00 2001 From: Ethan Girouard Date: Sun, 24 Nov 2024 14:37:10 -0500 Subject: [PATCH 2/2] Add example usage of LIBRETUNES_DISABLE_SIGNUP env var --- .env.example | 1 + docker-compose.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.env.example b/.env.example index 893f587..8e27597 100644 --- a/.env.example +++ b/.env.example @@ -18,3 +18,4 @@ DATABASE_URL=postgresql://libretunes:password@localhost:5432/libretunes LIBRETUNES_AUDIO_PATH=assets/audio LIBRETUNES_IMAGE_PATH=assets/images +LIBRETUNES_DISABLE_SIGNUP=true diff --git a/docker-compose.yml b/docker-compose.yml index eedd40b..42e5e7a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,6 +15,7 @@ services: POSTGRES_DB: ${POSTGRES_DB} LIBRETUNES_AUDIO_PATH: /assets/audio LIBRETUNES_IMAGE_PATH: /assets/images + LIBRETUNES_DISABLE_SIGNUP: "true" volumes: - libretunes-audio:/assets/audio - libretunes-images:/assets/images