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 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