diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index e61e7486d090d4eaa8c8f2eb6e67d8d2dc1240e9..8c6a5552220106c364330db2f1952b9d568ab6d4 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -27,6 +27,11 @@ Fixed
 * The menu item for entering an invitation code received offline was missing
 * CleaveJS was not loaded properly when using an external CDN
 
+Changed
+-------
+
+* Allow non-superusers with permission to invite persons
+
 `2.6`_ - 2022-01-10
 -------------------
 
diff --git a/aleksis/core/migrations/0034_invite_permission.py b/aleksis/core/migrations/0034_invite_permission.py
new file mode 100644
index 0000000000000000000000000000000000000000..02a2d24d791a1bb69597c872aee5e3d5e1e52dea
--- /dev/null
+++ b/aleksis/core/migrations/0034_invite_permission.py
@@ -0,0 +1,17 @@
+# Generated by Django 3.2.11 on 2022-01-22 20:18
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('core', '0033_update_photo_avatar'),
+    ]
+
+    operations = [
+        migrations.AlterModelOptions(
+            name='globalpermissions',
+            options={'default_permissions': (), 'managed': False, 'permissions': (('view_system_status', 'Can view system status'), ('manage_data', 'Can manage data'), ('impersonate', 'Can impersonate'), ('search', 'Can use search'), ('change_site_preferences', 'Can change site preferences'), ('change_person_preferences', 'Can change person preferences'), ('change_group_preferences', 'Can change group preferences'), ('test_pdf', 'Can test PDF generation'), ('invite', 'Can invite persons'))},
+        ),
+    ]
diff --git a/aleksis/core/models.py b/aleksis/core/models.py
index 04632a5615cd701cbae9e9d7f3a89b92ff82c74e..f46a803b687cc9cde9a893c642586eac232fd84d 100644
--- a/aleksis/core/models.py
+++ b/aleksis/core/models.py
@@ -1060,6 +1060,7 @@ class GlobalPermissions(GlobalPermissionModel):
             ("change_person_preferences", _("Can change person preferences")),
             ("change_group_preferences", _("Can change group preferences")),
             ("test_pdf", _("Can test PDF generation")),
+            ("invite", _("Can invite persons")),
         )
 
 
diff --git a/aleksis/core/rules.py b/aleksis/core/rules.py
index 76d442a9c33c5b054639df423570fb39909ffc33..ad1f55fcc44f470fac11c362c456451a56620785 100644
--- a/aleksis/core/rules.py
+++ b/aleksis/core/rules.py
@@ -329,6 +329,9 @@ rules.add_perm("core.can_change_password", can_change_password_predicate)
 invite_enabled_predicate = is_site_preference_set(section="auth", pref="invite_enabled")
 rules.add_perm("core.invite_enabled", invite_enabled_predicate)
 
+can_invite_predicate = has_person & has_global_perm("core.invite")
+rules.add_perm("core.can_invite", can_invite_predicate)
+
 # OAuth2 permissions
 create_oauthapplication_predicate = has_person & has_global_perm("core.add_oauthapplication")
 rules.add_perm("core.create_oauthapplication_rule", create_oauthapplication_predicate)