Unable to Restrict Course Discovery on Open edX Tutor v19 (MFE Homepage Still Shows Courses)

Hi everyone,

I’m working with Tutor v19 and trying to hide all courses from the homepage of the frontend-app-learner (MFE). I want to prevent anonymous users from seeing any courses before logging in.

What I did so far:

  1. In config.yml, I set the following:
COURSE_ABOUT_VISIBILITY_PERMISSION: none
COURSE_CATALOG_VISIBILITY: none
COURSE_CATALOG_VISIBILITY_PERMISSION: none
ENABLE_HTTPS: false
  1. I also created a custom plugin like this:
from tutor import hooks

hooks.Filters.ENV_PATCHES.add_items([
    (
        "lms-env",
        """
COURSE_CATALOG_VISIBILITY_PERMISSION: "enrollment"
COURSE_ABOUT_VISIBILITY_PERMISSION: "enrollment"
        """
    )
])
  1. I rebuilt the environment and restarted all services using:
tutor config save
tutor images build openedx
tutor local stop
tutor local start -d

The issue:

Despite these changes, the homepage still displays all courses, even to users who are not logged in (as shown in the screenshot).

What I’m looking for:

I would like to completely hide courses on the homepage (Course Discovery page) unless the user is enrolled or authenticated. Ideally, the course cards should not be visible to anonymous users.

Any suggestions or working examples would be greatly appreciated.

Thanks in advance!

I’m currently working on Tutor v18, and there is no COURSE_CATALOG_VISIBILITY_PERMISSION = 'enrollment' option. Instead, the available options are:

  • COURSE_CATALOG_VISIBILITY_PERMISSION = "see_in_catalog"
  • COURSE_CATALOG_VISIBILITY_PERMISSION = "see_exists"

Try these settings to achieve your requirements.

If you want to hide the courses from users entirely, you can try using the following configuration:

tutor_hooks.Filters.ENV_PATCHES.add_items([
    (
        "openedx-common-settings",
        """
FEATURES["ENABLE_COURSE_DISCOVERY"] = False
FEATURES["COURSES_ARE_BROWSABLE"] = False
        """
    )
])

If these settings don’t work, you might need to write custom logic to handle your specific requirements.