diff --git a/theme/templates/register.html b/theme/templates/register.html
new file mode 100644
index 0000000..876493d
--- /dev/null
+++ b/theme/templates/register.html
@@ -0,0 +1,36 @@
+{%extends "base.html" %}
+
+{% block content %}
+
+
+
+
+
+ Create your account
+
+
+
+
+
+
+{% endblock content %}
\ No newline at end of file
diff --git a/zitate/forms.py b/zitate/forms.py
index 7313be9..c1776a7 100644
--- a/zitate/forms.py
+++ b/zitate/forms.py
@@ -4,4 +4,10 @@ from django.contrib.auth.models import User
class LoginForm(forms.Form):
username = forms.CharField(label="username", max_length=255)
password = forms.CharField(label="password", max_length=255, widget=forms.PasswordInput)
- auth_type = forms.CharField(label="auth_type", max_length=255)
\ No newline at end of file
+ auth_type = forms.CharField(label="auth_type", max_length=255)
+
+
+class RegisterForm(forms.Form):
+ username = forms.CharField(label="username", max_length=255)
+ password = forms.CharField(label="password", max_length=255, widget=forms.PasswordInput)
+ email = forms.CharField(label="email", max_length=255)
\ No newline at end of file
diff --git a/zitate/urls.py b/zitate/urls.py
index 08ea24f..281f2ef 100644
--- a/zitate/urls.py
+++ b/zitate/urls.py
@@ -22,6 +22,7 @@ urlpatterns = [
path('admin/', admin.site.urls),
path("__reload__/", include("django_browser_reload.urls")),
path("login", login, name="login"),
+ path("register", register, name="register"),
path("logout", logout, name="logout"),
path("settings/", include('settings.urls')),
]
diff --git a/zitate/views.py b/zitate/views.py
index 1654740..b4f44b2 100644
--- a/zitate/views.py
+++ b/zitate/views.py
@@ -1,8 +1,9 @@
from django.shortcuts import render
import django.contrib.auth as dauth
from django.shortcuts import redirect
+from django.contrib.auth.models import User
-from zitate.forms import LoginForm
+from zitate.forms import LoginForm, RegisterForm
def login(request):
@@ -24,6 +25,24 @@ def login(request):
elif auth_type == "openid":
return render(request, "login.html")
+def register(request):
+ if request.method == "GET":
+ return render(request, "register.html")
+ elif request.method == "POST":
+ form = RegisterForm(request.POST)
+ if form.is_valid():
+ username = form.cleaned_data["username"]
+ password = form.cleaned_data["password"]
+ email = form.cleaned_data["email"]
+ User.objects.create_user(username, email, password)
+ user = dauth.authenticate(request, username=username, password=password)
+ if user is not None:
+ dauth.login(request, user)
+ return redirect("/")
+ else:
+ return render(request, "register.html", {"userError": True})
+
+
def logout(request):
dauth.logout(request)
return redirect("/")
\ No newline at end of file