From 7ee47b0abebdf44b283f2da3bdf2f650d488dabe Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Sun, 23 Feb 2020 23:33:34 -0500 Subject: [PATCH] Add setting to allow MLC registration only (#1259) * Adds a setting to registration visibility to allow for MLC registration while registration is disabled --- CTFd/auth.py | 3 ++- CTFd/themes/admin/templates/configs/settings.html | 3 +++ CTFd/utils/config/integrations.py | 5 +++++ CTFd/utils/config/visibility.py | 2 ++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CTFd/auth.py b/CTFd/auth.py index 10ecfe13..93ca3bbe 100644 --- a/CTFd/auth.py +++ b/CTFd/auth.py @@ -11,6 +11,7 @@ from CTFd.utils import config, email, get_app_config, get_config from CTFd.utils import user as current_user from CTFd.utils import validators from CTFd.utils.config import is_teams_mode +from CTFd.utils.config.integrations import mlc_registration from CTFd.utils.config.visibility import registration_visible from CTFd.utils.crypto import verify_password from CTFd.utils.decorators import ratelimit @@ -384,7 +385,7 @@ def oauth_redirect(): user = Users.query.filter_by(email=user_email).first() if user is None: # Check if we are allowing registration before creating users - if registration_visible(): + if registration_visible() or mlc_registration(): user = Users( name=user_name, email=user_email, diff --git a/CTFd/themes/admin/templates/configs/settings.html b/CTFd/themes/admin/templates/configs/settings.html index 813586da..59e2d901 100644 --- a/CTFd/themes/admin/templates/configs/settings.html +++ b/CTFd/themes/admin/templates/configs/settings.html @@ -83,6 +83,9 @@ + diff --git a/CTFd/utils/config/integrations.py b/CTFd/utils/config/integrations.py index 137948c2..dbaf97f0 100644 --- a/CTFd/utils/config/integrations.py +++ b/CTFd/utils/config/integrations.py @@ -3,3 +3,8 @@ from CTFd.utils import get_config def mlc(): return get_config("oauth_client_id") and get_config("oauth_client_secret") + + +def mlc_registration(): + v = get_config("registration_visibility") + return v == "mlc" diff --git a/CTFd/utils/config/visibility.py b/CTFd/utils/config/visibility.py index 45448fc5..f9337978 100644 --- a/CTFd/utils/config/visibility.py +++ b/CTFd/utils/config/visibility.py @@ -40,3 +40,5 @@ def registration_visible(): return True elif v == "private": return False + else: + return False