diff --git a/account_manager/urls.py b/account_manager/urls.py index 614b548..37aea99 100644 --- a/account_manager/urls.py +++ b/account_manager/urls.py @@ -20,6 +20,8 @@ urlpatterns = [ name='realm-user-detail'), path('realm//user//update/', account_manager.views.user_views.realm_user_update, name='realm-user-update'), + path('realm//user//group/update/', account_manager.views.user_views.realm_user_group_update, + name='realm-user-group-update'), path('realm//user/delete/s//', account_manager.views.user_views.realm_user_delete, name='realm-user-delete'), path('realm//user/delete/multiple', account_manager.views.user_views.realm_multiple_user_delete, diff --git a/account_manager/views/user_views.py b/account_manager/views/user_views.py index 1828169..a026761 100644 --- a/account_manager/views/user_views.py +++ b/account_manager/views/user_views.py @@ -26,10 +26,11 @@ def realm_user_detail(request, realm_id, user_dn): LdapUser.base_dn = realm.ldap_base_dn user = LdapUser.objects.get(dn=user_dn) groups = LdapGroup.objects.filter(members=user.dn) + print("GROUPS", groups) if realm_id and (request.user.is_superuser or len( Realm.objects.filter(id=realm_id).filter( admin_group__user__username__contains=request.user.username)) > 0): - return render(request, 'user/realm_user_detail.jinja2', {'user': user, 'realm': realm}) + return render(request, 'user/realm_user_detail.jinja2', {'user': user, 'groups': groups, 'realm': realm}) else: return render(request, 'user/user_detail.jinja2', {'user': user, 'groups': groups, 'realm': realm}) @@ -160,6 +161,15 @@ def user_delete(request, realm_id, user_dn): return redirect('permission-denied') +@login_required +@is_realm_admin +def realm_user_group_update(request, realm_id, user_dn): + realm = Realm.objects.get(id=realm_id) + LdapUser.base_dn = f'ou=people,{realm.ldap_base_dn}' + ldap_user = LdapUser.objects.get(dn=user_dn) + return render(request, 'user/realm_user_update_groups.jinja2', {'realm': realm, 'user': ldap_user}) + + def user_deleted(request, realm_id): return render(request, 'user/account_deleted.jinja2', {'realm': Realm.objects.get(id=realm_id)}) diff --git a/templates/user/realm_user_detail.jinja2 b/templates/user/realm_user_detail.jinja2 index d78d956..bf814ea 100644 --- a/templates/user/realm_user_detail.jinja2 +++ b/templates/user/realm_user_detail.jinja2 @@ -16,12 +16,14 @@
  • Gruppen: {% if groups %} {% for group in groups %} - {{ group.name }} + {{ group.name }} {% endfor %} {% else %} Keine zugewiesen {% endif %} - Gruppen zuweisen + + Gruppen zuweisen
  • diff --git a/templates/user/realm_user_update_groups.jinja2 b/templates/user/realm_user_update_groups.jinja2 new file mode 100644 index 0000000..07a9d0f --- /dev/null +++ b/templates/user/realm_user_update_groups.jinja2 @@ -0,0 +1,19 @@ +{% extends 'realm/realm_detailed.jinja2' %} +{% import 'macros/form_macros.jinja2' as mform %} + +{% block detail_content %} +

    {{ user.username }} - Gruppen Zuweisung ändern

    +
    + + {# {{ mform.text_input(form.username) }}#} + {# {{ mform.email_input(form.email) }}#} + {# {{ mform.password_input(form.password) }}#} + {# {{ mform.text_input(form.first_name) }}#} + {# {{ mform.text_input(form.last_name) }}#} +
    + + Abbrechen +
    +
    +{% endblock %} \ No newline at end of file