Moodle DevCamp 2016 - Idea Exchange

Moodle Multi-Tenancy

Picture of Sean Keogh
Moodle Multi-Tenancy
by Sean Keogh - Wednesday, 11 May 2016, 10:48 AM

Hi Everyone,

This is something of an old chestnut, and I understand that Moodle HQ themselves put considerable work in to this before giving up, but there are no community efforts in this area (although some Moodle partners have either suites of plugins or forks of moodle to provide this kind of service).  As someone who was a Moodle partner from way back in 2004, I have encountered the request to have some or other aspects of multi-tenancy from customers or potential customers, many times. 

What I propose is to have a discussion on what exactly is needed in this area.  And maybe come up with some diagrams/plans/lists of requirements (Thanks Stuart).

Some of the things I have been asked for were:

The ability to have sub-administrators, who only have access to, and control over, a sub-set of the moodle site's userbase and course structure, with the ability to assign roles to users in that sub-set, who also are restricted to that course area (one or more categories, for example) and userbase (for example, the ability to assign manager and course creator roles, but only within a sub-set of users).  The sub-admins and any roles created by them, should not be able to even SEE the users and courses outside of their defined area.  This area would be in effect a moodle sub-site for a department of the organisation, or a company within a group of companies, a school within a school district, or a hospital within a health service...that kind of thing.  Also, the usage might not just be one sub-admin or sub-manager (or whatever roles) to one sub-site.  You might have multiple levels where a sub-role has jurisdiction over multiple sub-sites, then further sub-roles for each sub-site.

This leads to other considerations.  For example, the organisation inevitably wants to have separate login pages, suitably themed, for the different sub-sites.  Perhaps these could be accessed in a similar way to the url-based theme choice that Moodle currently has as an option.

Reporting (including looking at logs and statistics) would probably need to have the ability to be filtered, based on the sub-site(s) that the admin or teacher requesting the report belongs to.

It may even be that some organisations would want different activity modules and blocks available for the different sub-sites.

Authentication and enrolment via external sources would need to be considered.

SSO to external sites like Mahara would also need to be considered.  In the case of Mahara, for example, would each sub-site in Moodle represent an Institution in Mahara?

No doubt there are many other possible use cases, and I would invite everyone that is interested, to have a think and add to this thread with possible additional requirements.

I would assume that any such community effort would try and make this kind of thing possible with plugins, rather than looking at core code changes.


Sean Keogh

Picture of Ralf Hilgenstock
Re: Moodle Multi-Tenancy
by Ralf Hilgenstock - Wednesday, 11 May 2016, 2:48 PM

Hi Sean

it would be fine to discuss this in detail.

We are in the discussion about tenant definitions for a long time. Most of clients have different scenarios and ideas what a tenant structure means. We developed different plugins and complete suites for different scenarios. Here some examples:

Moodle standard:

  • seperate instances per tenant, same code base individual databases, different urls, individual configurations
  • one course category per tentant, course creator permission on category level

New eledia plugins (examples):

  • individual themes based on user profile company information. After Login user sees a theme that is defined based on an information in user profile
  • course wizard, type1: teacher can create new courses, enrole and create new user by adding  a list of mail addresses, existing users will be enroled, new user accounts will be created, enroled and a mail notification is send to them.
  • course wizard, type2: additional feature: teacher selects a template course
  • course wizard type3: as type 1 but additional the new users gets some profile information from the teacher profile (i.e, institution, location,...)

Complete tenant based solution

This is the big solution: C5 Training. Compelet tenant based user management. sub tenants possible. Administration for online courses (Moodle), blended learning courses, on site courses, bundles of courses. Publishing offers (courses) in a catalogue. Definition which user grous can see which offers. User history. Waiting list, Approval of registration, Certificate management. On site trainer gets access to list of participants, can confirm that students joined the course. Reports on tenant level. Self booking for users, group booking in backend. Automatic process management with mail notification.Reuse of courses and offers.

Picture of Sean Keogh
Re: Moodle Multi-Tenancy
by Sean Keogh - Monday, 16 May 2016, 10:52 AM

I would suggest that we set up three categories/columns/buckets for possible features.




Then we can bat the ideas around, and try to come up with a specification that takes into account all of the features that we (whoever participates) can think of as being useful, based on our experience of Moodle use and customer requests over the years.

Once we have a specification, we can look at an outline of how each might be achieved.  I know that this is all high-level stuff, but there is no point in coding a line until we know what to code, and something like this is potentially a very big project that needs to have a proper plan.

Of course if there are existing plugins that fulfil one or more of the requirements then we should note that in our specification.

Sean Keogh