diff --git a/backend/src/uxbox/config.clj b/backend/src/uxbox/config.clj index 2e65dfbb1..9c152b7e9 100644 --- a/backend/src/uxbox/config.clj +++ b/backend/src/uxbox/config.clj @@ -56,6 +56,8 @@ :smtp-ssl (lookup-env env :uxbox-smtp-ssl false) :smtp-enabled (lookup-env env :uxbox-smtp-enabled false) + :registration-enabled (lookup-env env :uxbox-registration-enabled true) + :secret (lookup-env env :uxbox-secret "5qjiAndGY3")}) (defn read-test-config diff --git a/backend/src/uxbox/services/users.clj b/backend/src/uxbox/services/users.clj index 9d2c38379..fc01895f4 100644 --- a/backend/src/uxbox/services/users.clj +++ b/backend/src/uxbox/services/users.clj @@ -12,6 +12,7 @@ [buddy.sign.jwe :as jwe] [uxbox.sql :as sql] [uxbox.db :as db] + [uxbox.config :as cfg] [uxbox.util.spec :as us] [uxbox.emails :as emails] [uxbox.services.core :as core] @@ -186,8 +187,11 @@ (defmethod core/novelty :register-profile [params] (s/assert ::register params) - (with-open [conn (db/connection)] - (sc/apply-atomic conn register-user params))) + (if (= (:registration-enabled config) true) + (with-open [conn (db/connection)] + (sc/apply-atomic conn register-user params)) + (ex/raise :type :validation + :code ::registration-disabled))) ;; --- Password Recover diff --git a/frontend/src/uxbox/main/locales/en.cljs b/frontend/src/uxbox/main/locales/en.cljs index 32b3a77d0..d08e13613 100644 --- a/frontend/src/uxbox/main/locales/en.cljs +++ b/frontend/src/uxbox/main/locales/en.cljs @@ -62,6 +62,7 @@ "history.alert-message" "You are seeing version %s" "errors.api.form.old-password-not-match" "Incorrect old password" + "errors.api.form.registration-disabled" "The registration is currently disabled." "errors.api.form.email-already-exists" "The email is already in use by another user." "errors.api.form.username-already-exists" "The username is already in use by another user." "errors.api.form.user-not-exists" "Username or email does not matches any existing user." diff --git a/frontend/src/uxbox/main/locales/fr.cljs b/frontend/src/uxbox/main/locales/fr.cljs index 8c93fb127..f7f8dde0c 100644 --- a/frontend/src/uxbox/main/locales/fr.cljs +++ b/frontend/src/uxbox/main/locales/fr.cljs @@ -62,6 +62,7 @@ "history.alert-message" "Vous voyez la version %s" "errors.api.form.old-password-not-match" "Ancien mot de passe incorrect" + "errors.api.form.registration-disabled" "L'enregistrement est actuellement désactivé." "errors.api.form.email-already-exists" "L'email est déjà utilisé par un autre utilisateur." "errors.api.form.username-already-exists" "Le nom d'utilisateur est déjà utilisé par un autre utilisateur." "errors.api.form.user-not-exists" "Le nom d'utilisateur ou l'e-mail ne correspond à aucun utilisateur existant." diff --git a/frontend/src/uxbox/main/ui/auth/register.cljs b/frontend/src/uxbox/main/ui/auth/register.cljs index 2a9a2f2b8..08be0bf70 100644 --- a/frontend/src/uxbox/main/ui/auth/register.cljs +++ b/frontend/src/uxbox/main/ui/auth/register.cljs @@ -51,6 +51,8 @@ (st/emit! (assoc-value field value)))) (on-error [{:keys [type code] :as payload}] (case code + :uxbox.services.users/registration-disabled + (st/emit! "Registration is disabled") :uxbox.services.users/email-already-exists (st/emit! (assoc-error :email "Email already exists")) :uxbox.services.users/username-already-exists diff --git a/frontend/src/uxbox/main/ui/settings/profile.cljs b/frontend/src/uxbox/main/ui/settings/profile.cljs index d320d376e..fdfb8d52c 100644 --- a/frontend/src/uxbox/main/ui/settings/profile.cljs +++ b/frontend/src/uxbox/main/ui/settings/profile.cljs @@ -59,6 +59,8 @@ (st/emit! (assoc-value field value)))) (on-error [{:keys [code] :as payload}] (case code + :uxbox.services.users/registration-disabled + (st/emit! "Registration is disabled") :uxbox.services.users/email-already-exists (st/emit! (assoc-error :email "Email already exists")) :uxbox.services.users/username-already-exists