diff --git a/contracts/admin.py b/contracts/admin.py
index c30a49b64b4e5fb7b44f924ec9b3ba2be69e9876..9a7a017e6c796c86785d99f13ba4fcc6d0c236fb 100644
--- a/contracts/admin.py
+++ b/contracts/admin.py
@@ -277,7 +277,10 @@ class ContractAdmin(
                 "publishing_rejection_comment",
             )
 
-        if request.user.has_perm("approve", self):
+        if (
+            obj is not None
+            and request.user.has_perm("approve", obj)
+        ):
             fieldsets.insert(
                 5,
                 ("Schválení", {"fields": ["is_approved"]}),
diff --git a/package-lock.json b/package-lock.json
index 9a705a811e46537bc31c60f7b4490b6564d9abf9..cb67aa3fe7f1debd95d5d4b193e0a798ccecd9bb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -853,19 +853,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/fsevents": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
-      "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
-      "hasInstallScript": true,
-      "optional": true,
-      "os": [
-        "darwin"
-      ],
-      "engines": {
-        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
-      }
-    },
     "node_modules/function-bind": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
diff --git a/shared/templatetags/admin_extras.py b/shared/templatetags/admin_extras.py
index c4cf61c33be7cab4ce33e851545ca89af1045f0f..3840491519498fc0719501b89dee56fb6828b946 100644
--- a/shared/templatetags/admin_extras.py
+++ b/shared/templatetags/admin_extras.py
@@ -24,12 +24,16 @@ def get_fieldsets_and_inlines(context):
             else []
         )
     ):
-        if choice == FieldsetInlineOrder.FIELDSET:
-            fieldsets_and_inlines.append(
-                (FieldsetInlineOrder.FIELDSET, next(adminform))
-            )
-        elif choice == FieldsetInlineOrder.INLINE:
-            fieldsets_and_inlines.append((FieldsetInlineOrder.INLINE, next(inlines)))
+        try:
+            if choice == FieldsetInlineOrder.FIELDSET:
+                fieldsets_and_inlines.append(
+                    (FieldsetInlineOrder.FIELDSET, next(adminform))
+                )
+            elif choice == FieldsetInlineOrder.INLINE:
+                fieldsets_and_inlines.append((FieldsetInlineOrder.INLINE, next(inlines)))
+        except StopIteration:
+            # Missing permissions, ignore and move on
+            continue
 
     for fieldset in adminform:
         fieldsets_and_inlines.append((FieldsetInlineOrder.FIELDSET, fieldset))