diff --git a/app/policies/invite_policy.rb b/app/policies/invite_policy.rb
index e5c68af19bc9b5185f21dccff24a18ded68e7f78..a2a65f934d9fd2b2769dd917da73ab5ba7cfb6de 100644
--- a/app/policies/invite_policy.rb
+++ b/app/policies/invite_policy.rb
@@ -10,7 +10,7 @@ class InvitePolicy < ApplicationPolicy
   end
 
   def destroy?
-    owner? || staff?
+    owner? || (Setting.min_invite_role == 'admin' ? admin? : staff?)
   end
 
   private
diff --git a/app/views/admin/invites/_invite.html.haml b/app/views/admin/invites/_invite.html.haml
index 9555a89763109a520e2c6f184a032df73f028bdb..d7b6972863fb74d68749fa5567d49fc9d9f8ca01 100644
--- a/app/views/admin/invites/_invite.html.haml
+++ b/app/views/admin/invites/_invite.html.haml
@@ -16,4 +16,6 @@
         %time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
           = l invite.expires_at
   %td= table_link_to 'link', public_invite_url(invite_code: invite.code), public_invite_url(invite_code: invite.code)
-  %td= table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete if policy(invite).destroy?
+  %td
+    - if !invite.expired? && policy(invite).destroy?
+      = table_link_to 'times', t('invites.delete'), admin_invite_path(invite), method: :delete
diff --git a/app/views/invites/_invite.html.haml b/app/views/invites/_invite.html.haml
index 3f5f7936c76898a0f380c2687255ef7a3ea32344..81d67eb7db161dfb032657ebeaf381a234b6aa2b 100644
--- a/app/views/invites/_invite.html.haml
+++ b/app/views/invites/_invite.html.haml
@@ -12,4 +12,6 @@
         %time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
           = l invite.expires_at
   %td= table_link_to 'link', public_invite_url(invite_code: invite.code), public_invite_url(invite_code: invite.code)
-  %td= table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete if policy(invite).destroy?
+  %td
+    - if invite.expired? && policy(invite).destroy?
+      = table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete