diff --git a/src/account_manager/main_views.py b/src/account_manager/main_views.py index a4c8da4..0974c06 100644 --- a/src/account_manager/main_views.py +++ b/src/account_manager/main_views.py @@ -105,16 +105,25 @@ def base_dn_available(base_dn): @login_required @is_realm_admin def realm_detail(request, realm_id): + return get_realm_detail_rendered(request, realm_id) + + +def get_realm_detail_rendered(request, realm_id, success_headline=None, success_text=None, error_headline=None, + error_text=None): realm = Realm.objects.get(id=realm_id) LdapUser.base_dn = realm.ldap_base_dn - inactive_users = LdapUser.get_inactive_users().count() - logger.info(inactive_users) ldap_admin_group, ldap_default_group = get_default_admin_group(realm) - return render(request, 'realm/realm_detailed.jinja2', - {'realm': realm, 'ldap_admin_group': ldap_admin_group, 'ldap_default_group': ldap_default_group, - 'inactive_user_count': inactive_users, 'users_count': LdapUser.objects.all().count()}) + {'realm': realm, + 'ldap_admin_group': ldap_admin_group, + 'ldap_default_group': ldap_default_group, + 'inactive_user_count': inactive_users, + 'users_count': LdapUser.objects.all().count(), + 'success_headline': success_headline, + 'success_text': success_text, + 'error_headline': error_headline, + 'error_text': error_text}) def get_default_admin_group(realm): @@ -214,33 +223,19 @@ def permission_denied(request): def realm_email_test(request, realm_id): realm = Realm.objects.get(id=realm_id) - ldap_admin_group, ldap_default_group = get_default_admin_group(realm) try: realm_send_mail(realm, realm.email, f'{realm.name} Test Mail', f'Du hast die Mail Konfiguration für {realm.name} erfolgreich abgeschlossen.') except SMTPAuthenticationError as err: - return render(request, 'realm/realm_detailed.jinja2', - {'realm': realm, 'error': f'Mail konnte nicht versendet werden, Anmeldedaten inkorrekt.', - 'ldap_admin_group': ldap_admin_group, - 'ldap_default_group': ldap_default_group}) + return get_realm_detail_rendered(request, realm_id, error_headline="Testmail", + error_text=f'Mail konnte nicht versendet werden, Anmeldedaten inkorrekt.') except SMTPConnectError as err: - return render(request, 'realm/realm_detailed.jinja2', - {'realm': realm, - 'error': f'Mail konnte nicht versendet werden. Verbindungsaufbau abgelehnt. Bitte überprüfen sie die Server Addresse und den Port', - 'ldap_admin_group': ldap_admin_group, - 'ldap_default_group': ldap_default_group}) + return get_realm_detail_rendered(request, realm_id, error_headline="Testmail", + error_text=f'Mail konnte nicht versendet werden. Verbindungsaufbau abgelehnt. Bitte überprüfen sie die Server Addresse und den Port') except timeout as err: - return render(request, 'realm/realm_detailed.jinja2', - {'realm': realm, - 'error': f'Mail konnte nicht versendet werden. Zeitüberschreitung beim Verbindungsaufbau. Bitte überprüfen sie die Server Addresse und den Port', - 'ldap_admin_group': ldap_admin_group, - 'ldap_default_group': ldap_default_group}) + return get_realm_detail_rendered(request, realm_id, error_headline="Testmail", + error_text=f'Mail konnte nicht versendet werden. Zeitüberschreitung beim Verbindungsaufbau. Bitte überprüfen sie die Server Addresse und den Port') except SMTPException: - return render(request, 'realm/realm_detailed.jinja2', - {'realm': realm, - 'error': f'Mail konnte nicht versendet werden. Bitte kontaktieren sie den Administrator', - 'ldap_admin_group': ldap_admin_group, - 'ldap_default_group': ldap_default_group}) - return render(request, 'realm/realm_detailed.jinja2', - {'realm': realm, 'notice': 'Test erfolgreich', 'ldap_admin_group': ldap_admin_group, - 'ldap_default_group': ldap_default_group}) + return get_realm_detail_rendered(request, realm_id, error_headline="Testmail", + error_text=f'Mail konnte nicht versendet werden. Bitte kontaktieren sie den Administrator') + return get_realm_detail_rendered(request, realm_id, success_headline="Testmail", success_text='Test erfolgreich') diff --git a/src/templates/macros/utils_macros.jinja2 b/src/templates/macros/utils_macros.jinja2 index 9b6246d..c734496 100644 --- a/src/templates/macros/utils_macros.jinja2 +++ b/src/templates/macros/utils_macros.jinja2 @@ -131,7 +131,7 @@ {% endif %} {% endmacro %} -{% macro get_success_toast(success_head, success_text) -%} +{% macro get_success_toast(success_head, success_text, error_headline, error_text) -%} {% if success_text and success_head %} {% endif %} + {% if error_text and error_headline %} + + {% endif %} {% endmacro %} {% macro get_data_table_search_field(input_id="data-table-search-input") -%} diff --git a/src/templates/realm/realm_detailed.jinja2 b/src/templates/realm/realm_detailed.jinja2 index 760b402..9e39de2 100644 --- a/src/templates/realm/realm_detailed.jinja2 +++ b/src/templates/realm/realm_detailed.jinja2 @@ -1,4 +1,6 @@ {% extends 'base_admin.jinja2' %} +{% import 'macros/utils_macros.jinja2' as mutils %} + {% block admin_content %}
@@ -19,6 +21,7 @@

{{ error }}

{% endif %} {% block detail_content %} + {{ mutils.get_success_toast(success_headline, success_text, error_headline, error_text) }}