While core Moodle doesn’t support full Moodle multitenancy, it does provide options for controlling which content is visible to a particular set of users. One of the easiest paths to hiding certain content is to use course enrollments and have all categories hidden. This works great if there are prescribed enrollment logic and rules. Users just access their courses from their dashboard and never see any categories or courses they’re not enrolled in. But what if you want your users to be able to browse and select their own courses?
Assigning Custom Roles and Permission Overrides
That’s where some custom system roles, hidden categories, and permission overrides come into play. By assigning users a system role and giving that role permission to see specific hidden categories you can let some users see specific categories while hiding them from other users. While you can set this up manually, we prefer automation whenever possible. You can automate this process with a few helpful plugins – Profile field based cohort membership and Cohort role synchronization.
How do we put this all together? It starts with your users’ profile fields. Usually we map something like department or a custom field, like region, to automatically assign users to a specific cohort. In the image below you can see that we’re using a custom field called Destination.
Next, we set up a custom system role based on authenticated users for each cohort. Each cohort maps automatically into this system role. You can see in the image below that we named each cohort and role the same for simplicity.
The last step is hiding the categories and applying the permission override on a per category basis. You’ll want to give your custom role(s) the “See hidden categories” permission (moodle/category:viewhiddencategories) just for the categories you want them to see.
Ultimately, how does this all look to end users? Below are two images from the same site with different users logged in. Notice the difference?
Now you know how to create user-centric Moodle experiences for your users!
Totara has similar native functionality via the Audience Visibility settings, which is a little more automatic. As part of eThink’s fully managed LMS model, we provide the initial set up for these kinds of solutions for our clients and provide support as they use them in production.
Multitenancy in Moodle Workplace
Moode HQ recently released Moodle Workplace, a corporate-oriented version of Moodle that addresses several of the feature and functionality gaps for business organizations that Moodle alone can’t address. Moodle Workplace allows you to manage and delegate your learning programs in a centralized hub using multi-tenancy.
Moodle Workplace’s true multi-tenant architecture gives each of your divisions, departments or franchises their own dedicated partition where they can manage their users, courses, and automate workflows for their end users. Each tenant is able to brand and style their space with tenant-specific colors, logos and favicons. Users can be assigned into tenants manually, using CSV uploads, or via API. A tenant can have it’s own postion hiearchy and departments – enabling you to create job function derived training enrollments, reporting, and compliance tracking. While users are specific to individual tenants, courses can be unique to individual tenants or shared by multiple tenants.
Below is a split screen of two login pages – styled for different tenants hosted in the same Moodle instance.
Click below to learn more about Moodle Workplace.Explore Moodle Workplace
Learn More About Moodle Multitenancy
See our VP of Services, Courtney Bentley, and Director of Customer Solutions, Jeremy Schweitzer, discuss how you can “Manage Multiple Organizations with Moodle Magic” at the US 2018 US MoodleMoot below.