From c3e47ba438b580839867873d31b4da12701d63bf Mon Sep 17 00:00:00 2001 From: Scot Hacker Date: Tue, 5 Jan 2016 23:57:47 -0800 Subject: [PATCH] Don't require superuser Just require default_assignee for anon ticket submissions Resolves https://github.com/shacker/django-todo/issues/25 --- todo/settings.py | 12 +++--------- todo/views.py | 2 +- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/todo/settings.py b/todo/settings.py index 005e736..e6d909d 100644 --- a/todo/settings.py +++ b/todo/settings.py @@ -1,16 +1,10 @@ from django.conf import settings from django.contrib.auth.models import User - -class MissingSuperuserException(Exception): - pass - -try: - first_superuser = User.objects.filter(is_superuser=True)[0] -except: - raise MissingSuperuserException('django-todo requires at least one superuser in the database') +def missing_defaults(): + raise AttributeError('django-todo requires settings TODO_DEFAULT_ASSIGNEE and TODO_PUBLIC_SUBMIT_REDIRECT for anonymous ticket submissions.') STAFF_ONLY = getattr(settings, 'TODO_STAFF_ONLY', False) -DEFAULT_ASSIGNEE = getattr(settings, 'TODO_DEFAULT_ASSIGNEE', first_superuser.username) DEFAULT_LIST_ID = getattr(settings, 'TODO_DEFAULT_LIST_ID', 1) +DEFAULT_ASSIGNEE = getattr(settings, 'TODO_DEFAULT_ASSIGNEE', missing_defaults) PUBLIC_SUBMIT_REDIRECT = getattr(settings, 'TODO_PUBLIC_SUBMIT_REDIRECT', '/') diff --git a/todo/views.py b/todo/views.py index 8636c6c..6fe9f98 100644 --- a/todo/views.py +++ b/todo/views.py @@ -344,7 +344,7 @@ def external_add(request): messages.success(request, "Your trouble ticket has been submitted. We'll get back to you soon.") - return HttpResponseRedirect(reverse(settings.PUBLIC_SUBMIT_REDIRECT)) + return HttpResponseRedirect(settings.PUBLIC_SUBMIT_REDIRECT) else: form = AddExternalItemForm()