Multitenancy refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple client organizations (tenants). Multitenancy is contrasted with a multi-instance architecture where separate software instances (or hardware systems) are set up for different client organizations. With a multitenant architecture, a software application is designed to virtually partition its data and configuration so that each client organization works with a customized virtual application instance. (from http://en.wikipedia.org/wiki/Multitenancy).
Many applications support multi-tenancy by completely separating tenants. Tenant instances run on the same codebase, but have separate databases. This makes it difficult to migrate users and content between tenants. ELIS supports a flexible, hierarchical form of multi-tenancy via groups and sub-groups of users, which we call User Sets. In ELIS, tenant User Sets share the same codebase and database, and are separated by permissions. This enables class content to be shared among tenants. Users might be in several different kinds of tenants in an organization, for example you can have a User Set of all Sales staff, with their own internal management hierarchy. Then you can have a different User Set of all staff who live in California, with it's own management and reporting hierarchy. Sales staff in California would be in both User Sets, for example. However, Moodle is still mostly a multiple-instance application, so there are some practices that must be followed to fully take advantage of ELIS' User Set functionality. These will be more fully described in the use cases in this section of the documentation.
From a user's perspective, ELIS Multi-tenancy enables a client to set up an ELIS site that has multiple sub-organizations, with sub-administrators who can manage only users who are in their own organization. For example a content provider who sells content to multiple institutions, can set up each institution as a User Set in the content provider's ELIS site, and deliver the same (or selected) class content to each institution. Selected institution staff can be given user management and reporting permission, to view and schedule reports, edit their own users, and manage enrollments for the their own users, without seeing or knowing about other institution's users on the site.
In order to set up content editing roles in Moodle so that the administrator of a Program or a site administrator can only edit certain Moodle classes, you need to set these roles up in Moodle (for example as category course creator, etc.). During your ELIS quickstart, our training staff can assist you with setting up Moodle and ELIS roles to achieve your project's goals.