Fix user update formular
This commit is contained in:
parent
a400b1812b
commit
acfa85e220
@ -8,6 +8,17 @@ class AddLDAPUserForm(forms.Form):
|
||||
email = forms.EmailField(label='E-Mail', required=False)
|
||||
|
||||
|
||||
class UpdateLDAPUserForm(forms.Form):
|
||||
# username = forms.CharField(label='Nutzername', max_length=400)
|
||||
email = forms.EmailField(label='E-Mail')
|
||||
password = forms.CharField(label='Passwort', widget=forms.PasswordInput, required=False)
|
||||
first_name = forms.CharField(label='Vorname', required=True)
|
||||
last_name = forms.CharField(label='Nachname', required=True)
|
||||
# phone = forms.(db_column='telephoneNumber', blank=True)
|
||||
# mobile_phone = forms.CharField(db_column='mobile', blank=True)
|
||||
# photo = forms.ImageField(label='Profilfoto', required=False)
|
||||
|
||||
|
||||
class UserDeleteListForm(forms.Form):
|
||||
ldap_users = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple, queryset=LdapUser.objects.all())
|
||||
|
||||
|
||||
@ -1,16 +1,20 @@
|
||||
import logging
|
||||
import re
|
||||
from smtplib import SMTPAuthenticationError, SMTPConnectError, SMTPException
|
||||
from socket import timeout
|
||||
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.models import Group, User
|
||||
from django.shortcuts import render, redirect
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.shortcuts import render, redirect, HttpResponse
|
||||
|
||||
from account_helper.models import Realm
|
||||
from account_manager.utils.mail_utils import realm_send_mail
|
||||
from .forms import RealmAddForm, RealmUpdateForm, EmailSettingsForm
|
||||
from .models import LdapGroup, LdapUser
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def is_realm_admin(view_func):
|
||||
def decorator(request, *args, **kwargs):
|
||||
@ -31,10 +35,14 @@ def realm_list(request):
|
||||
if not user.is_superuser:
|
||||
realms = Realm.objects.filter(admin_group__user__username__contains=user.username)
|
||||
if len(realms) == 0:
|
||||
user = LdapUser.objects.get(username=user.username)
|
||||
realm_base_dn = re.compile('(uid=[a-zA-Z0-9_]*),(ou=[a-zA-Z_]*),(.*)').match(user.dn).group(3)
|
||||
realm = Realm.objects.get(ldap_base_dn=realm_base_dn)
|
||||
return redirect('realm-user-detail', realm.id, user.dn)
|
||||
try:
|
||||
user = LdapUser.objects.get(username=user.username)
|
||||
realm_base_dn = re.compile('(uid=[a-zA-Z0-9_]*),(ou=[a-zA-Z_]*),(.*)').match(user.dn).group(3)
|
||||
realm = Realm.objects.get(ldap_base_dn=realm_base_dn)
|
||||
return redirect('realm-user-detail', realm.id, user.dn)
|
||||
except ObjectDoesNotExist as err:
|
||||
logger.info('Anmeldung fehlgeschlagen', err)
|
||||
return HttpResponse("Invalid login. Please try again.")
|
||||
elif len(realms) == 1:
|
||||
return redirect('realm-detail', realms[0].id)
|
||||
else:
|
||||
|
||||
@ -6,7 +6,7 @@ from . import main_views
|
||||
|
||||
urlpatterns = [
|
||||
# Realm
|
||||
path('realm/', main_views.realm_list, name='realm-home'),
|
||||
path('', main_views.realm_list, name='realm-home'),
|
||||
path('realm/<int:realm_id>/', main_views.realm_detail, name='realm-detail'),
|
||||
path('realm/<int:realm_id>/update/', main_views.realm_update, name='realm-update'),
|
||||
path('realm/<int:realm_id>/delete/', main_views.realm_delete, name='realm-delete'),
|
||||
|
||||
@ -1,16 +1,14 @@
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth.views import PasswordResetConfirmView
|
||||
from django.contrib.sites.shortcuts import get_current_site
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.shortcuts import render, redirect
|
||||
|
||||
from account_helper.models import Realm
|
||||
from account_manager.forms import AddLDAPUserForm, UserDeleteListForm
|
||||
from account_manager.models import LdapUser, LdapGroup
|
||||
from django.contrib.auth.models import User
|
||||
from account_manager.forms import AddLDAPUserForm, UserDeleteListForm, UpdateLDAPUserForm
|
||||
from account_manager.main_views import is_realm_admin
|
||||
from django.core.exceptions import ObjectDoesNotExist, ValidationError
|
||||
from django.utils.http import urlsafe_base64_decode
|
||||
from django.contrib.auth.views import PasswordResetConfirmView
|
||||
from django.contrib.sites.shortcuts import get_current_site
|
||||
from django.contrib.auth import login
|
||||
from account_manager.models import LdapUser, LdapGroup
|
||||
|
||||
|
||||
@login_required
|
||||
@ -132,9 +130,9 @@ def user_deleted(request, realm_id):
|
||||
|
||||
def user_update_controller(ldap_user, realm_id, realm_obj, request, user_dn, redirect_name, detail_page):
|
||||
if request.method == 'POST':
|
||||
form = AddLDAPUserForm(request.POST)
|
||||
form = UpdateLDAPUserForm(request.POST)
|
||||
if form.is_valid():
|
||||
ldap_user.username = form.cleaned_data['username']
|
||||
# ldap_user.username = form.cleaned_data['username']
|
||||
password = form.cleaned_data['password']
|
||||
if password:
|
||||
ldap_user.password = password
|
||||
@ -147,7 +145,7 @@ def user_update_controller(ldap_user, realm_id, realm_obj, request, user_dn, red
|
||||
else:
|
||||
form_data = {'username': ldap_user.username, 'first_name': ldap_user.first_name,
|
||||
'last_name': ldap_user.last_name, 'email': ldap_user.email}
|
||||
form = AddLDAPUserForm(initial=form_data)
|
||||
form = UpdateLDAPUserForm(initial=form_data)
|
||||
return render(request, detail_page, {'form': form, 'realm': realm_obj})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user