Limit Course Visibility by Profile Field?

Limit Course Visibility by Profile Field?

by Frank Burger -
Number of replies: 1

Our organization provides customized training services to our customers, and I need to restrict visibility based on the customer's organization. Right now, I have a custom profile field OrgID that puts them in a cohort, and then I use cohort sync enrolment. 

This works fine, except the users need to be enrolled in all the available courses in order to see them. I'd prefer to a second tier of visibility. 

For example, users from Company B should never see courses built for Company A. But each Company A user should be able to see all the courses we created for them, while only being actively enrolled in a few.

All suggestions appreciated!!

Average of ratings: -
In reply to Frank Burger

Re: Limit Course Visibility by Profile Field?

by Frank Burger -
Got it working, but interested in feedback on better approaches.
Here's what I did...
1. Define a new System role "Company A" using Authenticated User as archetype
2. Use the Cohort Role Sync plugin to get all Company A users assigned to this role (they're already in a Company A cohort)
3. Stick all the courses that are for Company A into a dedicated Category
4. In the Company A Category, add 2 permissions for the Company A User role
- category:viewcourselist
- course:view

The users see their enrolled courses in My Courses, and they're not overwhelmed by every course they could ever use. If they want to see what else is available, they can use the "All Courses..." button on the Filtered Course List block on the dashboard.