diff --git a/contracts/admin.py b/contracts/admin.py
index d80d314b534322dad59af72d9c5df6ea1c9dcee9..1ea01de6d9c1ec44cfc51df2e4e77a15f0719785 100644
--- a/contracts/admin.py
+++ b/contracts/admin.py
@@ -260,14 +260,14 @@ class ContractAdmin(
         if (
             obj is None  # Creating confidential data, creator will be request.user
             or obj.created_by == request.user
-            or request.user.has_perm("view_confidential", obj)
+            or request.user.has_perm("contracts.view_confidential")
         ):
             fieldsets[0][1]["fields"].insert(
                 fieldsets[0][1]["fields"].index("is_public") + 1,
                 "publishing_rejection_comment",
             )
 
-        if obj is not None and request.user.has_perm("approve", obj):
+        if obj is not None and request.user.has_perm("contracts.approve"):
             fieldsets.insert(
                 5,
                 ("Schválení", {"fields": ["is_approved"]}),
@@ -290,7 +290,7 @@ class ContractAdmin(
             FieldsetInlineOrder.FIELDSET,
         ]
 
-        if context["user"].has_perm("approve", self):
+        if context["user"].has_perm("contracts.approve"):
             order.insert(11, FieldsetInlineOrder.FIELDSET)
 
         return order
@@ -337,7 +337,7 @@ class ContractAdmin(
         if (
             obj is not None
             and obj.is_approved
-            and not request.user.has_perm("contracts.edit_when_approved", obj)
+            and not request.user.has_perm("contracts.edit_when_approved")
         ):
             return False
 
@@ -347,7 +347,7 @@ class ContractAdmin(
         if (
             obj is not None
             and obj.is_approved
-            and not request.user.has_perm("contracts.delete_when_approved", obj)
+            and not request.user.has_perm("contracts.delete_when_approved")
         ):
             return False
 
@@ -456,7 +456,7 @@ class SigneeAdmin(OwnPermissionsMixin, MarkdownxGuardedModelAdmin):
         if (
             obj is None  # Creating
             or obj.entity_has_public_address
-            or request.user.has_perm("contracts.view_confidential", obj)
+            or request.user.has_perm("contracts.view_confidential")
         ):
             entity_type_index = fields.index("entity_type") + 1
 
@@ -472,9 +472,7 @@ class SigneeAdmin(OwnPermissionsMixin, MarkdownxGuardedModelAdmin):
                 "date_of_birth",
             )
 
-        if obj is None or request.user.has_perm(  # Allowed to create
-            "contracts.edit_signee", obj
-        ):
+        if obj is None or request.user.has_perm("contracts.edit_signee"):
             fields.insert(fields.index("ico_number"), "load_ares_data_button")
 
         return fields
diff --git a/users/models.py b/users/models.py
index 99f97b6a47a6759f990b35ec7ee6c51caf08895f..aa19469e93ee0a716fe8f6a06512c945cdced777 100644
--- a/users/models.py
+++ b/users/models.py
@@ -88,16 +88,12 @@ class User(pirates_models.AbstractUser):
         return f"{first_name}{self.last_name}"
 
     def get_all_permissions_ordered(self, obj=None) -> list:
-        #permissions_set = self.get_all_permissions(obj)
-
-        #print(permissions_set)
-
         if not self.is_superuser:
             permissions = (
                 Permission.
                 objects.
                 filter(
-                    models.Q(content_type__name=self.groups.all()) |
+                    models.Q(group__user=self) |
                     models.Q(user=self)
                 ).
                 order_by("content_type__app_label").