diff --git a/awx/api/views.py b/awx/api/views.py index 5f1d8b22af..d64899df39 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -720,6 +720,7 @@ class SchedulePreview(GenericAPIView): model = Schedule view_name = _('Schedule Recurrence Rule Preview') serializer_class = SchedulePreviewSerializer + permission_classes = (IsAuthenticated,) def post(self, request): serializer = self.get_serializer(data=request.data) diff --git a/awx/main/tests/functional/api/test_schedules.py b/awx/main/tests/functional/api/test_schedules.py index 56c35d5f94..c03ecead1a 100644 --- a/awx/main/tests/functional/api/test_schedules.py +++ b/awx/main/tests/functional/api/test_schedules.py @@ -87,6 +87,12 @@ def test_invalid_rrules(post, admin_user, project, inventory, rrule, error): assert error in resp.content +@pytest.mark.django_db +def test_normal_users_can_preview_schedules(post, alice): + url = reverse('api:schedule_rrule') + post(url, {'rrule': get_rrule()}, alice, expect=200) + + @pytest.mark.django_db def test_utc_preview(post, admin_user): url = reverse('api:schedule_rrule')