> For the complete documentation index, see [llms.txt](https://olab4.gitbook.io/help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://olab4.gitbook.io/help/advanced-topics/courses.md).

# Groups and Roles

## What are Courses?

Courses are a functional grouping of sets of maps, along with sets of users who can play those maps. Kinda like a superset of maps, if you like.&#x20;

In OLab3, they were called Scenarios (see [Glossary](/help/advanced-topics/glossary.md)) and had an odd dual function. As well as providing another layer to access control (who could play a map), they also provided a way of grouping sessions for reporting purposes.&#x20;

They are a little bit similar to a Course in a Learning Management System (LMS).&#x20;

In OLab4.6 onwards, learning designs that involve supersets of cases and other materials can be handled by the parent LMS that you are using to authenticate users into OLab.&#x20;

So far, this approach has been tested with Moodle but uptake has been limited. For more information about these issues, see <https://olab4.net/courses-groups-sets-and-scenarios/>&#x20;

We have introduced Groups and Roles to internally manage our access control lists (ACLs) which determine who can do what with which resources.&#x20;

## &#x20;Groups

Primarily, these are sets of Users. They are related together with Roles. See [Users, roles](/help/advanced-topics/users-roles.md)

Using the [OLab4 System Management Tool (SMT)](https://smt.olab4.net/), course and curriculum designers can now allocate users to groups, maps to groups, and users to roles.&#x20;

This approach is much more powerful and flexible. It avoids some of the constraints of previous approaches and gives us more flexibility to align with the Identity & Access Management System (IAMS) functions of the LMS.&#x20;

The approach can also be used without an LMS, which opens things up for authors without enterprise-level systems for user management.&#x20;

{% hint style="info" %}
Note that Groups in OLab4 are not the same as OLab3 Groups, which were just convenient collections of Users. In OLab4, Groups have a strong functional relation to Roles; they also relate to Users and Maps.&#x20;
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://olab4.gitbook.io/help/advanced-topics/courses.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
