From 0b13fe4d7a20ede7e46b3d32db1571778b5286d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20G=C3=B6tz?= Date: Wed, 10 Apr 2019 02:15:45 +0200 Subject: [PATCH] Update layout --- account_manager/forms.py | 7 +- account_manager/main_views.py | 38 ++++--- account_manager/urls.py | 2 +- account_manager/views/group_views.py | 2 +- templates/base_admin.jinja2 | 37 ++++--- templates/group/group_add.jinja2 | 21 +++- templates/group/group_detail.jinja2 | 46 ++++++-- templates/macros/form_macros.jinja2 | 31 ++++++ templates/realm/realm_detailed.jinja2 | 103 +++++++++++------- templates/realm/realm_groups.jinja2 | 27 ++++- templates/realm/realm_update.jinja2 | 15 ++- templates/realm/realm_user.jinja2 | 28 +++-- .../realm/realm_user_multiple_delete.jinja2 | 13 ++- templates/user/realm_user_add.jinja2 | 23 +++- templates/user/realm_user_detail.jinja2 | 56 ++++++---- 15 files changed, 307 insertions(+), 142 deletions(-) diff --git a/account_manager/forms.py b/account_manager/forms.py index eb59247..ec5b106 100644 --- a/account_manager/forms.py +++ b/account_manager/forms.py @@ -40,11 +40,8 @@ class RealmUpdateForm(forms.Form): ldap_base_dn = forms.CharField(label='LDAP Base DN', help_text='TODO', max_length=200) + email = forms.EmailField(label='Bereichs E-Mail Adresse') name = forms.CharField(label='Bereichsname', max_length=200) - admin_group = forms.ModelChoiceField(label='Admin Grouppe', + admin_group = forms.ModelChoiceField(label='Admin Gruppe', help_text="Die Mitglieder dieser Gruppe darf den Bereich administieren", queryset=LdapGroup.objects.all()) - - -class EmailSettingsForm(forms.Form): - email = forms.EmailField(label='Eigene E-Mail Adresse') diff --git a/account_manager/main_views.py b/account_manager/main_views.py index b24d7c1..5b4944f 100644 --- a/account_manager/main_views.py +++ b/account_manager/main_views.py @@ -10,7 +10,7 @@ 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 .forms import RealmAddForm, RealmUpdateForm from .models import LdapGroup, LdapUser logger = logging.getLogger(__name__) @@ -75,12 +75,14 @@ def realm_update(request, realm_id): if request.user.is_superuser: realm_obj = Realm.objects.get(id=realm_id) data = {'id': realm_obj.id, 'ldap_base_dn': realm_obj.ldap_base_dn, 'name': realm_obj.name, + 'email': realm_obj.email, 'admin_group': realm_obj.admin_group} if request.method == 'POST': form = RealmUpdateForm(request.POST) if form.is_valid(): realm_obj.name = form.cleaned_data['name'] realm_obj.ldap_base_dn = form.cleaned_data['ldap_base_dn'] + realm_obj.email = form.cleaned_data['email'] admin_ldap_group = form.cleaned_data['admin_group'] realm_obj.admin_group, _ = Group.objects.get_or_create(name=admin_ldap_group.name) realm_obj.save() @@ -119,23 +121,23 @@ def permission_denied(request): return render(request, 'permission_denied.jinja2', {}) -@login_required -@is_realm_admin -def realm_email_update(request, realm_id): - realm = Realm.objects.get(id=realm_id) - - if request.method == 'POST': - form = EmailSettingsForm(request.POST) - if form.is_valid(): - realm.email = form.cleaned_data['email'] - realm.save() - return redirect('realm-detail', realm.id) - else: - data = {} - if realm.email: - data = {'email': realm.email, } - form = EmailSettingsForm(initial=data) - return render(request, 'realm/realm_create_update_mail.jinja2', {'realm': realm, 'form': form}) +# @login_required +# @is_realm_admin +# def realm_email_update(request, realm_id): +# realm = Realm.objects.get(id=realm_id) +# +# if request.method == 'POST': +# form = EmailSettingsForm(request.POST) +# if form.is_valid(): +# realm.email = form.cleaned_data['email'] +# realm.save() +# return redirect('realm-detail', realm.id) +# else: +# data = {} +# if realm.email: +# data = {'email': realm.email, } +# form = EmailSettingsForm(initial=data) +# return render(request, 'realm/realm_create_update_mail.jinja2', {'realm': realm, 'form': form}) def realm_email_test(request, realm_id): diff --git a/account_manager/urls.py b/account_manager/urls.py index 9086edb..614b548 100644 --- a/account_manager/urls.py +++ b/account_manager/urls.py @@ -10,7 +10,7 @@ urlpatterns = [ path('realm//', main_views.realm_detail, name='realm-detail'), path('realm//update/', main_views.realm_update, name='realm-update'), path('realm//delete/', main_views.realm_delete, name='realm-delete'), - path('realm//mail/', main_views.realm_email_update, name='realm-mail-add-update'), + # path('realm//mail/', main_views.realm_email_update, name='realm-mail-add-update'), path('realm//mail/test/', main_views.realm_email_test, name='realm-mail-test'), # Realm User diff --git a/account_manager/views/group_views.py b/account_manager/views/group_views.py index 3ab229f..d6fc097 100644 --- a/account_manager/views/group_views.py +++ b/account_manager/views/group_views.py @@ -74,7 +74,7 @@ def group_update(request, realm_id, group_dn): data = {'name': group.name, 'members': group.members} form = AddLDAPGroupForm(initial=data) - return render(request, 'group/group_detail.jinja2', {'form': form, 'realm': realm}) + return render(request, 'group/group_detail.jinja2', {'form': form, 'realm': realm, 'group': group}) def group_delete(request, realm_id, group_dn): diff --git a/templates/base_admin.jinja2 b/templates/base_admin.jinja2 index 88adf8e..0f54182 100644 --- a/templates/base_admin.jinja2 +++ b/templates/base_admin.jinja2 @@ -3,21 +3,28 @@ {% block body %}
diff --git a/templates/group/group_add.jinja2 b/templates/group/group_add.jinja2 index f74c4e9..adfdb9e 100644 --- a/templates/group/group_add.jinja2 +++ b/templates/group/group_add.jinja2 @@ -1,5 +1,16 @@ -
- - {{ form.as_p() }} - -
\ No newline at end of file +{% extends 'realm/realm_detailed.jinja2' %} +{% import 'macros/form_macros.jinja2' as mform %} + +{% block detail_content %} +
+ + {{ mform.text_input(form.name) }} +

Mitglieder

+ {{ form.members }} +
+ + Abbrechen +
+
+{% endblock %} \ No newline at end of file diff --git a/templates/group/group_detail.jinja2 b/templates/group/group_detail.jinja2 index 338a584..2c3f3dd 100644 --- a/templates/group/group_detail.jinja2 +++ b/templates/group/group_detail.jinja2 @@ -1,21 +1,45 @@ {% extends 'realm/realm_detailed.jinja2' %} -{% import 'macros/form_macros.jinja2' as forms %} -{% block extra_content %} +{% import 'macros/form_macros.jinja2' as mform %} + +{% block detail_content %} {% if not form %} -

{{ group.name }}

-

DN: {{ group.dn }}

-

Nutzername: {{ group.name }}

+

{{ group.name }}

+
    +
  • Ldap Domain: {{ group.dn }}
  • +

Mitglieder

- {% for user in group.members %} -

{{ user }}

- {% endfor %} - Update Gruppe - Delete Gruppe +
    + {% for user in group.members %} +
  • {{ user }} +
  • + {% endfor %} +
+ {% else %}
{{ form.as_p()|safe }} - + {{ mform.text_input(form.name) }} + {% for choice_value, choice_label in form.members.field.choices %} +

{{ form.members.html_name }} | {{ choice_value }} | {{ choice_label }} | {{ form.members.value.value }}

+ {# {{ mform.checkbox_input_for_choice_fields(choice_id, choice_label ) }}#} + {% endfor %} +{# {% for value in form.members.value %}#} + {#

{{ value }}

#} + {# {{ mform.checkbox_input_for_choice_fields(choice_id, choice_label ) }}#} + {# {% endfor %}#} + +
+ + Abbrechen +
{% endif %} {% endblock %} \ No newline at end of file diff --git a/templates/macros/form_macros.jinja2 b/templates/macros/form_macros.jinja2 index 74278ea..a04e831 100644 --- a/templates/macros/form_macros.jinja2 +++ b/templates/macros/form_macros.jinja2 @@ -143,6 +143,37 @@
{% endmacro %} +{% macro checkbox_input_for_choice_fields(label, value, id) -%} +
+{# #} + + +
+{% endmacro %} + {% macro select_input(field, multiple=False) -%}
diff --git a/templates/realm/realm_detailed.jinja2 b/templates/realm/realm_detailed.jinja2 index 5527f51..3f4d536 100644 --- a/templates/realm/realm_detailed.jinja2 +++ b/templates/realm/realm_detailed.jinja2 @@ -1,41 +1,66 @@ -{% extends 'base.jinja2' %} -{% block content %} - Zurück zur Realmübersicht -

Bereich {{ realm.name }}

- {% if notice %} -

{{ notice }}

- {% endif %} - {% if error %} -

{{ error }}

- {% endif %} -

Bereich Info

-

LDAP OU: {{ realm.ldap_base_dn }}

- {% if realm.email %} -

Email: {{ realm.email }}

- {% else %} -

Noch ausstehend

- {% endif %} -

Admin Gruppe: {{ realm.admin_group }}

- {% if request.user.is_superuser %} - {% block realm_form %} -

Bereichsinformationen anpassen

- {% endblock %} - {% endif %} -

- E-Mail Einstellungen | - {% if realm.email %} - Test Mail - {% endif %} -

+{% extends 'base_admin.jinja2' %} +{% block admin_content %} +
+
+

Bereich {{ realm.name }} + + {% if request.user.is_superuser %} + Delete + {% endif %} + +

+ {% if notice %} +

{{ notice }}

+ {% endif %} + {% if error %} +

{{ error }}

+ {% endif %} + {% block detail_content %} +
    +
  • LDAP Organisationseinheit: {{ realm.ldap_base_dn }}
  • + {% if realm.email %} +
  • Email: {{ realm.email }}
  • + {% else %} +
  • Email: Noch ausstehend
  • + {% endif %} + {% if realm.admin_group %} +
  • Admin Gruppe: {{ realm.admin_group }}
  • + {% else %} +
  • Admin Gruppe: Noch ausstehend
  • + {% endif %} + {% if realm.default_group %} +
  • Default Gruppe: {{ realm.admin_group }}
  • + {% else %} +
  • Default Gruppe: Noch ausstehend +
  • + {% endif %} +
+
+ {% if request.user.is_superuser %} + Bereichsinformationen + anpassen + {% endif %} + {# E-Mail#} + {# Einstellungen#} + {% if realm.email %} + Test + Mail + {% endif %} +
+ {% block realm_form %} + {% endblock %} + {% endblock %} -

Nutzer hinzufügen

- {% block user_content %} -

Nutzer

- {% endblock %} -

Gruppen hinzufügen

- {% block groups_content %} -

Gruppen

- {% endblock %} - {% block extra_content %} - {% endblock %} + {#

Nutzer hinzufügen

#} + {# {% block user_content %}#} + {#

Nutzer

#} + {# {% endblock %}#} + {#

Gruppen hinzufügen

#} + {# {% block groups_content %}#} + {#

Gruppen

#} + {# {% endblock %}#} + {# {% block extra_content %}#} + {# {% endblock %}#} +
+
{% endblock %} diff --git a/templates/realm/realm_groups.jinja2 b/templates/realm/realm_groups.jinja2 index 9bd1f44..4872950 100644 --- a/templates/realm/realm_groups.jinja2 +++ b/templates/realm/realm_groups.jinja2 @@ -1,9 +1,24 @@ {% extends 'realm/realm_detailed.jinja2' %} -{% block groups_content %} -

Gruppen

- {% for group in realm_groups %} -

{{ group.name }} - {{ group.dn }} -

- {% endfor %} +{% block detail_content %} +

Gruppen

+ + + + + + + + + {% for group in realm_groups %} + + + + + {% endfor %} + +
NameLdap Domain
{{ group.name }} + {{ group.dn }} +
+ Gruppen hinzufügen {% endblock %} diff --git a/templates/realm/realm_update.jinja2 b/templates/realm/realm_update.jinja2 index 41c49a5..8699ac7 100644 --- a/templates/realm/realm_update.jinja2 +++ b/templates/realm/realm_update.jinja2 @@ -1,10 +1,19 @@ {% extends 'realm/realm_detailed.jinja2' %} -{% block realm_form %} +{% import 'macros/form_macros.jinja2' as mform %} + +{% block detail_content %} {% if form %}
- {{ form.as_p()|safe }} - + {{ mform.text_input(form.ldap_base_dn) }} + {{ mform.text_input(form.name) }} + {{ mform.email_input(form.email) }} + {{ mform.text_input(form.admin_group) }} +
+ + Abbrechen +
{% endif %} {% endblock %} \ No newline at end of file diff --git a/templates/realm/realm_user.jinja2 b/templates/realm/realm_user.jinja2 index 30ff06c..0066596 100644 --- a/templates/realm/realm_user.jinja2 +++ b/templates/realm/realm_user.jinja2 @@ -1,10 +1,24 @@ {% extends 'realm/realm_detailed.jinja2' %} -{% block user_content %} +{% block detail_content %}

Nutzer

- Mehrere Nutzer Löschen - {% for user in realm_user %} -

- {{ user.username }} - {{ user.dn }} -

- {% endfor %} + Mehrere Nutzer Löschen + + + + + + + + + {% for user in realm_user %} + + + + + {% endfor %} + +
NameLdap Domain
{{ user.username }} + {{ user.dn }} +
+ Nutzer hinzufügen {% endblock %} \ No newline at end of file diff --git a/templates/realm/realm_user_multiple_delete.jinja2 b/templates/realm/realm_user_multiple_delete.jinja2 index 93630f2..809acf3 100644 --- a/templates/realm/realm_user_multiple_delete.jinja2 +++ b/templates/realm/realm_user_multiple_delete.jinja2 @@ -1,10 +1,15 @@ {% extends 'realm/realm_detailed.jinja2' %} -{% block user_content %} -

Nutzer

- Abrechen +{% import 'macros/form_macros.jinja2' as mform %} + +{% block detail_content %} +

Nutzer löschen

- {{ form.as_p() }} +
+ + Abbrechen +
{% endblock %} \ No newline at end of file diff --git a/templates/user/realm_user_add.jinja2 b/templates/user/realm_user_add.jinja2 index 73f7a7d..31c97a8 100644 --- a/templates/user/realm_user_add.jinja2 +++ b/templates/user/realm_user_add.jinja2 @@ -1,6 +1,17 @@ -

Einen Nutzer für den Bereich {{ realm.name }} anlegen

-
- - {{ form.as_p() }} - -
\ No newline at end of file +{% extends 'realm/realm_detailed.jinja2' %} +{% import 'macros/form_macros.jinja2' as mform %} + +{% block detail_content %} +

Nutzer anlegen

+
+ +{# {{ form.as_p() }}#} + {{ mform.text_input(form.username) }} + {{ mform.email_input(form.email) }} +
+ + Abbrechen +
+
+{% endblock %} \ No newline at end of file diff --git a/templates/user/realm_user_detail.jinja2 b/templates/user/realm_user_detail.jinja2 index 9c57809..4546f37 100644 --- a/templates/user/realm_user_detail.jinja2 +++ b/templates/user/realm_user_detail.jinja2 @@ -1,23 +1,37 @@ {% extends 'realm/realm_detailed.jinja2' %} -{% block extra_content %} -
- {% if not form %} -

DN: {{ user.dn }}

-

Nutzername: {{ user.username }}

-

Vorname: {{ user.first_name }}

-

Nachname: {{ user.last_name }}

-

Email: {{ user.email }}

-

Passwort: {{ user.password }}

-

Telefon: {{ user.phone }}

-

Mobiltelefon: {{ user.mobile_phone }}

- Update User - Delete User - {% else %} -
- - {{ form.as_p()|safe }} - -
- {% endif %} -
+{% import 'macros/form_macros.jinja2' as mform %} + +{% block detail_content %} +

{{ user.username }}

+ {% if not form %} +
    +
  • Ldap Domain: {{ user.dn }}
  • + {#
  • Nutzername: {{ user.username }}
  • #} +
  • Vorname: {{ user.first_name }}
  • +
  • Nachname: {{ user.last_name }}
  • +
  • Email: {{ user.email }}
  • +
  • Passwort: {{ user.password }}
  • +
  • Telefon: {{ user.phone }}
  • +
  • Mobiltelefon: {{ user.mobile_phone }}
  • +
+ + {% else %} +
+ + {{ mform.email_input(form.email) }} + {{ mform.password_input(form.password) }} + {{ mform.text_input(form.first_name) }} + {{ mform.text_input(form.last_name) }} +
+ + Abbrechen +
+
+ {% endif %} {% endblock %} \ No newline at end of file