summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander2025-06-02 09:50:28 +0000
committerMagnus Hagander2025-06-02 09:50:28 +0000
commit78c7fb3c7eddda52c1c30cae6214527b37d69068 (patch)
tree7cfb1c9846514c35c9d993bcd353e6598da8345d
parent9fd900f39bcda7b31fdb2152b89dc4a14e52757a (diff)
Move admin functionality to /adm/
This along with moving django admin to /adm/admin/. More to come in next commit(s).
-rw-r--r--pgmailmgr/mailmgr/templates/adm.html (renamed from pgmailmgr/mailmgr/templates/home.html)12
-rw-r--r--pgmailmgr/mailmgr/templates/base.html2
-rw-r--r--pgmailmgr/mailmgr/views.py15
-rw-r--r--pgmailmgr/urls.py9
4 files changed, 22 insertions, 16 deletions
diff --git a/pgmailmgr/mailmgr/templates/home.html b/pgmailmgr/mailmgr/templates/adm.html
index 27eb32e..558687e 100644
--- a/pgmailmgr/mailmgr/templates/home.html
+++ b/pgmailmgr/mailmgr/templates/adm.html
@@ -1,7 +1,7 @@
{%extends "base.html" %}
{%block headlinks%}
-<li class="nav-item p-2"><a href="/#users" title="Users">Users</a></li>
-<li class="nav-item p-2"><a href="/#forwarders" title="Forwarders">Forwarders</a></li>
+<li class="nav-item p-2"><a href="/https/git.postgresql.org/adm/#users" title="Users">Users</a></li>
+<li class="nav-item p-2"><a href="/https/git.postgresql.org/adm/#forwarders" title="Forwarders">Forwarders</a></li>
{%endblock%}
{%block content%}
@@ -19,14 +19,14 @@
<tbody>
{%for u in users%}
<tr>
- <td><a href="/https/git.postgresql.org/user/{{u.pk}}/">{{u.local_part}}</a></td>
+ <td><a href="/https/git.postgresql.org/adm/user/{{u.pk}}/">{{u.local_part}}</a></td>
<td>{{u.local_domain}}</td>
<td>{{u.full_name|default:''}}</td>
</tr>
{%endfor%}
</tbody>
</table>
-<a href="/https/git.postgresql.org/user/add/" class="btn btn-primary">Add new user</a>
+<a href="/https/git.postgresql.org/adm/user/add/" class="btn btn-primary">Add new user</a>
<a name="forwarders"></a>
<h2 class="mt-4">Forwarders</h2>
@@ -41,13 +41,13 @@
<tbody>
{%for f in forwarders%}
<tr>
- <td><a href="/https/git.postgresql.org/forwarder/{{f.pk}}/">{{f.local_part}}</a></td>
+ <td><a href="/https/git.postgresql.org/adm/forwarder/{{f.pk}}/">{{f.local_part}}</a></td>
<td>{{f.local_domain}}</td>
<td>{{f.remote_name}}</td>
</tr>
{%endfor%}
</tbody>
</table>
-<a href="/https/git.postgresql.org/forwarder/add/" class="btn btn-primary">Add new forwarder</a>
+<a href="/https/git.postgresql.org/adm/forwarder/add/" class="btn btn-primary">Add new forwarder</a>
{%endblock%}
diff --git a/pgmailmgr/mailmgr/templates/base.html b/pgmailmgr/mailmgr/templates/base.html
index 1690833..4434b08 100644
--- a/pgmailmgr/mailmgr/templates/base.html
+++ b/pgmailmgr/mailmgr/templates/base.html
@@ -52,7 +52,7 @@ body {
<div class="col-md-12">
<a href="/https/git.postgresql.org/accounts/logout/" class="btn btn-secondary col-md-1 mr-3">Log out</a>
{%if user.is_superuser %}
- <a href="/https/git.postgresql.org/admin/" class="btn btn-secondary col-md-1 mr-3">Django Admin</a>
+ <a href="/https/git.postgresql.org/adm/admin/" class="btn btn-secondary col-md-1 mr-3">Django Admin</a>
{%endif%}
</div>
</div>
diff --git a/pgmailmgr/mailmgr/views.py b/pgmailmgr/mailmgr/views.py
index 3171339..7e1c584 100644
--- a/pgmailmgr/mailmgr/views.py
+++ b/pgmailmgr/mailmgr/views.py
@@ -18,10 +18,15 @@ def log(user, what):
@login_required
def home(request):
+ return None
+
+
+@login_required
+def adm_home(request):
users = VirtualUser.objects.extra(where=["EXISTS (SELECT 1 FROM mailmgr_userpermissions p WHERE p.user_id=%s AND p.domain_id = local_domain_id AND local_part ~* ('^'||p.pattern||'$'))" % request.user.id])
forwards = Forwarder.objects.extra(where=["EXISTS (SELECT 1 FROM mailmgr_userpermissions p WHERE p.user_id=%s AND p.domain_id = local_domain_id AND local_part ~* ('^'||p.pattern||'$'))" % request.user.id])
- return render(request, 'home.html', {
+ return render(request, 'adm.html', {
'users': users,
'forwarders': forwards,
})
@@ -52,7 +57,7 @@ def userform(request, userparam):
log(request.user, "%s user %s, including changing the password" % (userparam == 'add' and 'Added' or 'Updated', vu))
else:
log(request.user, "%s user %s, without changing the password" % (userparam == 'add' and 'Added' or 'Updated', vu))
- return HttpResponseRedirect('/')
+ return HttpResponseRedirect('/adm/')
else:
# Generate a new form
form = VirtualUserForm(instance=vu, user=request.user)
@@ -60,7 +65,7 @@ def userform(request, userparam):
return render(request, 'form.html', {
'form': form,
'savebutton': (userparam == 'new') and "New" or "Save",
- 'cancelurl': '/',
+ 'cancelurl': '/adm/',
})
@@ -81,7 +86,7 @@ def forwarderform(request, userparam):
form.save()
log(request.user, "%s forwarding %s -> %s" % (userparam == 'add' and 'Added' or 'Updated', fwd, fwd.remote_name))
messages.add_message(request, messages.INFO, 'Forwarder %s updated' % fwd)
- return HttpResponseRedirect('/')
+ return HttpResponseRedirect('/adm/')
else:
# Generate a new form
form = ForwarderForm(instance=fwd, user=request.user)
@@ -89,5 +94,5 @@ def forwarderform(request, userparam):
return render(request, 'form.html', {
'form': form,
'savebutton': (userparam == 'new') and "New" or "Save",
- 'cancelurl': '/#forwarders',
+ 'cancelurl': '/adm/#forwarders',
})
diff --git a/pgmailmgr/urls.py b/pgmailmgr/urls.py
index 6831c65..8876ef2 100644
--- a/pgmailmgr/urls.py
+++ b/pgmailmgr/urls.py
@@ -8,9 +8,10 @@ from django.contrib import admin
admin.autodiscover()
urlpatterns = [
- re_path(r'^$', views.home),
- re_path(r'^user/(\d+|add)/$', views.userform),
- re_path(r'^forwarder/(\d+|add)/$', views.forwarderform),
+ re_path(r'^/$', views.home),
+ re_path(r'^adm/$', views.adm_home),
+ re_path(r'^adm/user/(\d+|add)/$', views.userform),
+ re_path(r'^adm/forwarder/(\d+|add)/$', views.forwarderform),
# Auth
re_path('^auth_receive/$', pgmailmgr.auth.auth_receive),
@@ -19,5 +20,5 @@ urlpatterns = [
re_path('^accounts/login/$', pgmailmgr.auth.login),
# Uncomment the next line to enable the admin:
- re_path(r'^admin/', admin.site.urls),
+ re_path(r'^adm/admin/', admin.site.urls),
]