diff --git a/panel/src/panel/templates/base.html b/panel/src/panel/templates/base.html
index 86f1557..a068007 100644
--- a/panel/src/panel/templates/base.html
+++ b/panel/src/panel/templates/base.html
@@ -16,10 +16,11 @@
+ {% load custom_tags %}
{% if user.is_authenticated %}
- Welcome, {{ user.username }}! Logout
+ Welcome, {{ user.username }}! Logout
{% else %}
- Login
+ Login
{% endif %}
{% block navigation %}
diff --git a/panel/src/panel/templatetags/__init__.py b/panel/src/panel/templatetags/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/panel/src/panel/templatetags/custom_tags.py b/panel/src/panel/templatetags/custom_tags.py
new file mode 100644
index 0000000..563047e
--- /dev/null
+++ b/panel/src/panel/templatetags/custom_tags.py
@@ -0,0 +1,16 @@
+from django import template
+from django.urls import reverse
+from urllib.parse import urlencode
+
+register = template.Library()
+
+@register.simple_tag(takes_context=True)
+def auth_url(context, action):
+ """Generate login/logout URL with current path as redirect."""
+ request = context['request']
+ view = context.get('view')
+ redirect_field_name = getattr(view, 'redirect_field_name', 'next')
+
+ base_url = reverse(action)
+ query_params = {redirect_field_name: request.path}
+ return f"{base_url}?{urlencode(query_params)}"