'place', 'text',
             'text_color', 'background_color',
             'priority', 'since', 'until',
-            'show_members', 'staff_preview']
+            'show_members', 'staff_preview', 'only_authenticated']
 
 
 admin.site.register(models.Banner, BannerAdmin)
 
--- /dev/null
+# Generated by Django 2.2.27 on 2022-04-14 12:10
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('annoy', '0011_auto_20210610_1437'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='banner',
+            name='only_authenticated',
+            field=models.BooleanField(default=False, verbose_name='only for authenticated users'),
+        ),
+    ]
 
     until = models.DateTimeField(_('until'), null=True, blank=True)
     show_members = models.BooleanField(_('show members'), default=False)
     staff_preview = models.BooleanField(_('staff preview'), default=False)
+    only_authenticated = models.BooleanField(_('only for authenticated users'), default=False)
 
     class Meta:
         verbose_name = _('banner')
             until__lt=n
         ).order_by('-priority', '?')
 
+        if not request.user.is_authenticated:
+            banners = banners.filter(only_authenticated=False)
+
         if not request.user.is_staff:
             banners = banners.filter(staff_preview=False)
 
-        if request:
-            if Membership.is_active_for(request.user):
-                banners = banners.filter(show_members=True)
+        if Membership.is_active_for(request.user):
+            banners = banners.filter(show_members=True)
+
         return banners