diff --git a/invsystem/object_adder/views.py b/invsystem/object_adder/views.py index c2c6ee5..4f2173f 100644 --- a/invsystem/object_adder/views.py +++ b/invsystem/object_adder/views.py @@ -1,7 +1,6 @@ from django.shortcuts import render from django.contrib.auth.decorators import login_required from django.conf import settings -from os.path import join from .forms import ObjectForm, CategoryForm from django.utils import timezone diff --git a/invsystem/settings_app/views.py b/invsystem/settings_app/views.py index 36438db..482eba5 100644 --- a/invsystem/settings_app/views.py +++ b/invsystem/settings_app/views.py @@ -2,6 +2,8 @@ from django.shortcuts import render from .forms import SettingsForm from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User +from django.conf import settings +from django.utils import timezone # Create your views here. @@ -22,6 +24,16 @@ def index(request): form = SettingsForm(request.POST) if form.is_valid(): + + log = open(settings.LOGFILE, 'a') + log.write( + '\n[' + str(timezone.now()) + ']' + ' MODIFY_USER: BEFORE(|NAME: ' + user.username + + '|FIRST_NAME: ' + user.first_name + '|LAST_NAME: ' + user.last_name + '|EMAIL: ' + user.email + + ') AFTER(' + '|NAME: ' + form.cleaned_data.get('username') + + '|FIRST_NAME: ' + form.cleaned_data.get('first_name') + '|LAST_NAME: ' + form.cleaned_data.get( + 'last_name') + '|EMAIL: ' + form.cleaned_data.get('email') + ')' + ) + user.username = form.cleaned_data.get('username') user.first_name = form.cleaned_data.get('first_name') user.last_name = form.cleaned_data.get('last_name') diff --git a/invsystem/user_manager/templates/registration/changepwd.html b/invsystem/user_manager/templates/registration/changepwd.html new file mode 100644 index 0000000..41cc77c --- /dev/null +++ b/invsystem/user_manager/templates/registration/changepwd.html @@ -0,0 +1,46 @@ +{% extends 'bases/navbar.html' %} + +{% block content %} +
+ {% if message == 'PWD_CHANGE_SUCCESS' %} +
+ × + Das Passwort wurde erfolgreich geändert +
+ {% elif message == 'PWD_CHANGE_FALURE' %} +
+ × + Es ist ein Fehler aufgetreten. Wahrscheinlich haben sie das falsche Passwort eingegeben, das neue + Passwort entspricht nicht den unten genannten Kriterien oder die zwei Passwörter stimmen nicht überein. +
+ {% endif %} +

Passwort ändern

+
+ {% csrf_token %} +
+ {{ form.old_password.errors }} + + {{ form.old_password }} +
+ +
+ {{ form.new_password1.errors }} + + {{ form.new_password1 }} +
+
+ {{ form.new_password2.errors }} + + {{ form.new_password2 }} +
+ +
+
+ +{% endblock %} + \ No newline at end of file diff --git a/invsystem/user_manager/templates/settings_app/settings.html b/invsystem/user_manager/templates/settings_app/settings.html index dba18f9..4047024 100644 --- a/invsystem/user_manager/templates/settings_app/settings.html +++ b/invsystem/user_manager/templates/settings_app/settings.html @@ -37,7 +37,10 @@ {{ form.email }} - +
+ + Passwort ändern +
diff --git a/invsystem/user_manager/urls.py b/invsystem/user_manager/urls.py index 2b945f6..35ce048 100644 --- a/invsystem/user_manager/urls.py +++ b/invsystem/user_manager/urls.py @@ -4,4 +4,5 @@ from . import views urlpatterns = [ path('', views.index, name='index'), path('register', views.register, name='register'), + path('changepassword', views.changepassword, name='change_password') ] diff --git a/invsystem/user_manager/views.py b/invsystem/user_manager/views.py index 040f866..c189257 100644 --- a/invsystem/user_manager/views.py +++ b/invsystem/user_manager/views.py @@ -1,5 +1,9 @@ from django.shortcuts import render, redirect -from django.contrib.auth import authenticate, login +from django.conf import settings +from django.utils import timezone +from django.contrib.auth import authenticate, login, update_session_auth_hash +from django.contrib.auth.forms import PasswordChangeForm +from django.contrib.auth.decorators import login_required from .forms import SignUpForm @@ -27,3 +31,31 @@ def register(request): context = {'form': form, 'title': title} return render(request, 'registration/register.html', context) + + +@login_required +def changepassword(request): + if request.method == 'POST': + form = PasswordChangeForm(request.user, request.POST) + + if form.is_valid(): + user = form.save() + update_session_auth_hash(request, user) + + log = open(settings.LOGFILE, 'a') + log.write( + '\n[' + str(timezone.now()) + ']' + ' CHANGE_PWD: |USR: ' + request.user.username + ) + + form = PasswordChangeForm(request.user) + context = {'title': 'Passwort ändern', 'form': form, 'message': 'PWD_CHANGE_SUCCESS'} + return render(request, 'registration/changepwd.html', context) + else: + form = PasswordChangeForm(request.user) + context = {'title': 'Passwort ändern', 'form': form, 'message': 'PWD_CHANGE_FALURE'} + return render(request, 'registration/changepwd.html', context) + + else: + form = PasswordChangeForm(request.user) + context = {'title': 'Passwort ändern', 'form': form} + return render(request, 'registration/changepwd.html', context)