Joomla 6 ready — all extensions now run natively on Joomla 5 and Joomla 6.

EasyLearn Documentation

Permissions & access

Understand how user groups, hierarchical matching and access inheritance work across EasyLearn.

Overview

EasyLearn uses Joomla user groups to control who can see, enrol in, manage and view statistics for courses. There is no separate user management — everything builds on the groups you already have in Joomla.

The permission system has two types of matching and applies across three entities: courses, categories and instructors.

Matching types

Hierarchical matching

With hierarchical matching, users in a child group automatically inherit access from the parent group. This uses Joomla's built-in nested set structure for user groups.

Example

If a course grants access to the "Company A" group, then users in "Company A → Sales Team" and "Company A → Engineering" automatically have access too, because their groups are children of "Company A".

Direct matching

With direct matching, only users who are exact members of the specified group have access. Child groups do not inherit access.

Example

If a course grants statistics access to the "HR Managers" group, only users directly in "HR Managers" can view statistics — users in child groups like "HR Managers → Recruitment" do not get access.

Course permissions

Each course has three user group fields:

FieldMatching typeControls
Access groups Hierarchical Who can see the course in the catalog and enrol in it. Child groups inherit access.
Admin groups Hierarchical Who can manage the course (edit content, view all data, manage lessons). Child groups inherit admin rights. Admin groups automatically have access and statistics rights as well.
View statistics groups Direct Who can view statistics and certificates for the course. Only exact group membership — no inheritance.
Why is view statistics "direct"?

Statistics access uses direct matching because viewing student data is sensitive. You want explicit control over who can see progress reports and exam results, rather than having it cascade to all sub-groups automatically.

Access groups also drive auto-enrollment

The Access groups field is also the basis for Auto-Enrollment: only courses a group can actually access can be linked to that group in an enrollment rule. This is what lets membership extensions such as Membership Pro enrol paying members automatically.

Category permissions

Categories have two user group fields:

FieldControls
Access user groups Which user groups can see courses in this category. Multi-select.
Admin user groups Which user groups can manage courses in this category. Multi-select. Admin groups automatically have view access.

Category admin inheritance

Admin access to categories is inherited downward through the category hierarchy:

  • If a user has admin access to a parent category, they automatically have admin access to all its subcategories.
  • Subcategories can have additional admin groups, but they cannot remove access granted by the parent.
"Safety Training" (admin: Safety Managers)   → "Fire Safety" (inherits: Safety Managers)   → "First Aid" (admin: Safety Managers + First Aid Team)

In this example, Safety Managers can manage all three categories. First Aid Team can only manage the "First Aid" subcategory.

Instructor permissions

Instructors have a User groups field that determines visibility in the frontend admin:

  • The instructor list in the frontend admin is filtered to show only instructors whose user groups overlap with the user's category admin permissions.
  • When creating a course, the instructor dropdown is filtered to match the category's user groups.

Frontend admin access

The frontend admin menu and views are only available to users who have at least one admin role. The system checks these conditions:

ViewWho has access
Courses Users with course admin or category admin access to at least one course.
Categories Users with category admin access to at least one category.
Instructors Users with category admin access (instructor visibility is based on category groups).
Statistics Users with admin access or view statistics access to at least one course.
Certificates Same as statistics.
Reset requests Users linked to an instructor who is assigned to courses, or users with course admin access.
Super administrators

Joomla super administrators (core.admin) always have full access to everything in EasyLearn — all courses, categories, statistics and admin views.

Admin menu visibility

The frontend admin menu dropdown only appears for users with at least one admin role. The menu items are dynamically filtered:

  • Administration group — Courses, Categories, Instructors (only items the user has access to).
  • Statistics group — Statistics, Certificates (only if the user has statistics access).
  • Support group — Reset Requests (only if the user can handle requests).

The current view is highlighted in the menu.

Excluded groups

Two Joomla user groups are always excluded from permission checks:

  • Public (group 1) — Anonymous visitors. Courses cannot be made public.
  • Guest (group 9) — Guest users. Courses cannot be assigned to guests.

These groups are filtered out of all user group selection fields to prevent accidental configuration.

Practical example

Here is how you might set up permissions for a multi-department organisation:

Joomla user groups

Registered   → Company A     → Sales     → Engineering     → Company A Admins   → Company B     → Warehouse     → Company B Admins

EasyLearn configuration

EntityAccess groupsAdmin groups
Category: "Company A Training" Company A Company A Admins
Category: "Company B Training" Company B Company B Admins
Course: "Sales Onboarding" Sales Company A Admins

Result

  • Sales team members can see and enrol in "Sales Onboarding".
  • Engineering members cannot see "Sales Onboarding" (wrong access group), but they can see other courses in "Company A Training" if those courses include their group.
  • Company A Admins can manage all courses in "Company A Training" (via category admin) and see all statistics.
  • Company B users cannot see anything from Company A.

logo hvid

Sanderumvej 82, 5250 Odense SV, Denmark
VAT: DK33799888

Cron Job Starts