From cfa66e1a98910846a18eddcd6178bd41705de082 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <git@imaniti.org>
Date: Tue, 2 May 2023 21:10:03 +0200
Subject: [PATCH] add permissions to admin page

---
 registry/templates/admin/index.html | 16 ++++++++-------
 users/models.py                     | 31 +++++++++++++----------------
 2 files changed, 23 insertions(+), 24 deletions(-)

diff --git a/registry/templates/admin/index.html b/registry/templates/admin/index.html
index 3ddb1bc..834866c 100644
--- a/registry/templates/admin/index.html
+++ b/registry/templates/admin/index.html
@@ -34,12 +34,14 @@
 
 {{ block.super }}
 
-<h2>Tvá oprávnění</h2>
-
-<ul>
-    {% for permission in request.user.get_all_permissions_ordered %}
-        <li>{{ permission }}</li>
-    {% endfor %}
-</ul>
+<div style="width:100%;float:left;padding-top:0.5rem;margin-top:0.5rem;border-top:1px solid var(--hairline-color)"> 
+    <h2>Tvá oprávnění</h2>
+
+    <ul>
+        {% for permission in request.user.get_all_permissions_ordered %}
+            <li>{{ permission }}</li>
+        {% endfor %}
+    </ul>
+</div>
 
 {% endblock %}
diff --git a/users/models.py b/users/models.py
index 4369cfa..99f97b6 100644
--- a/users/models.py
+++ b/users/models.py
@@ -92,23 +92,20 @@ class User(pirates_models.AbstractUser):
 
         #print(permissions_set)
 
-        permissions = (
-            Permission.
-            objects.
-            filter(
-                models.Q(group__in=self.groups.all()) |
-                models.Q(user=self)
-            ).
-            distinct().
-            all()
-            #Permission.
-            #objects.
-            #filter(codename__in=permissions_set).
-            #order_by("name").
-            #all()
-        )
-
-        print(permissions)
+        if not self.is_superuser:
+            permissions = (
+                Permission.
+                objects.
+                filter(
+                    models.Q(content_type__name=self.groups.all()) |
+                    models.Q(user=self)
+                ).
+                order_by("content_type__app_label").
+                distinct().
+                all()
+            )
+        else:
+            permissions = Permission.objects.order_by("content_type__app_label").all()
 
         return permissions
 
-- 
GitLab