diff --git a/mediagoblin.ini b/mediagoblin.ini index 596107dc..e889646a 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -8,6 +8,9 @@ email_sender_address = "notice@mediagoblin.example.org" # set to false to enable sending notices email_debug_mode = true +# Set to false to disable registrations +allow_registration = true + ## Uncomment this to put some user-overriding templates here #local_templates = %(here)s/user_dev/templates/ diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 2450023f..01bfc066 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -19,6 +19,7 @@ import uuid from webob import exc from mediagoblin import messages +from mediagoblin import mg_globals from mediagoblin.util import render_to_response, redirect from mediagoblin.db.util import ObjectId from mediagoblin.auth import lib as auth_lib @@ -30,6 +31,11 @@ def register(request): """ Your classic registration view! """ + + # Redirects to indexpage if registrations are disabled + if not mg_globals.app_config["allow_registration"]: + return redirect(request, "index") + register_form = auth_forms.RegistrationForm(request.POST) if request.method == 'POST' and register_form.validate(): @@ -98,7 +104,8 @@ def login(request): 'mediagoblin/auth/login.html', {'login_form': login_form, 'next': request.GET.get('next') or request.POST.get('next'), - 'login_failed': login_failed}) + 'login_failed': login_failed, + 'allow_registration': mg_globals.app_config["allow_registration"]}) def logout(request): diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index aadf5c21..b6356b0e 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -21,6 +21,9 @@ direct_remote_path = string(default="/mgoblin_static/") email_debug_mode = boolean(default=True) email_sender_address = string(default="notice@mediagoblin.example.org") +# Set to false to disable registrations +allow_registration = boolean(default=True) + # By default not set, but you might want something like: # "%(here)s/user_dev/templates/" local_templates = string() @@ -73,4 +76,4 @@ celeryd_eta_scheduler_precision = float() # known lists celery_routes = string_list() -celery_imports = string_list() \ No newline at end of file +celery_imports = string_list() diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index 2303ce5c..e25783ea 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -35,7 +35,9 @@ {% endif %} -
Don't have an account yet?
Create one here!
Don't have an account yet?
Create one here!
- If you don't have an account, please - Register. -
+ {% if allow_registration %} ++ If you don't have an account, please + Register. +
+ {% endif %} {% endif %} {# temporarily, an "image gallery" that isn't one really ;) #} diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 5b6d9773..e7d9dbdd 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see