diff --git a/waffle/models.py b/waffle/models.py index 3a5fa76d..ffa58e7d 100644 --- a/waffle/models.py +++ b/waffle/models.py @@ -230,6 +230,9 @@ def get_flush_keys(self, flush_keys: list[str] | None = None) -> list[str]: return flush_keys def is_active_for_user(self, user: AbstractBaseUser) -> bool | None: + if self.everyone: + return True + if self.authenticated and user.is_authenticated: return True diff --git a/waffle/tests/test_models.py b/waffle/tests/test_models.py index 4d64d5dc..7ec9b4a7 100644 --- a/waffle/tests/test_models.py +++ b/waffle/tests/test_models.py @@ -5,6 +5,7 @@ get_waffle_sample_model, get_waffle_switch_model, ) +from django.contrib.auth.models import User class ModelsTests(TestCase): @@ -30,3 +31,8 @@ def test_natural_keys(self): def test_flag_is_not_active_for_none_requests(self): flag = get_waffle_flag_model().objects.create(name='test-flag') self.assertEqual(flag.is_active(None), False) + + def test_is_active_for_user_when_everyone_is_active(self): + flag = get_waffle_flag_model().objects.create(name='test-flag') + flag.everyone = True + self.assertEqual(flag.is_active_for_user(User()), True) \ No newline at end of file