Module 9: Site Administration

Managing Users, Courses, Roles, and Web Services

1. Users & Authentication

Authentication (Auth) is how a user logs in. Moodle supports multiple simultaneous methods.

Tip: Use "Bulk user actions" to message, confirm, or delete users en masse.

2. Courses & Enrolment

Enrolment is how a user gets access to a course. A user can be authenticated (logged in) but not enrolled in anything.

3. Roles & Permissions

Moodle's permission system is granular and context-based.

The Context Hierarchy

  1. System: Global permissions (Site Admin).
  2. Category: Permissions apply to all courses in a category.
  3. Course: Teacher/Student roles.
  4. Module (Activity): Specific permissions for a single quiz or forum.
  5. Block: Permissions for a specific side block.

Capabilities: Specific actions (e.g., `mod/forum:viewdiscussion`).
Roles: A collection of capabilities (e.g., "Student", "Teacher").

4. Web Services & Mobile

To connect external apps (like the Moodle Mobile App) or integrate with other systems, use Web Services.

  1. Enable Web Services: Site admin > Advanced features.
  2. Protocols: Enable REST (recommended) or SOAP.
  3. External Services: Define which functions are available.
  4. Tokens: Generate a token for the external application to authenticate.
# Example REST Call
curl "https://moodle.example.com/webservice/rest/server.php?wstoken=YOUR_TOKEN&wsfunction=core_course_get_courses&moodlewsrestformat=json"

5. Site-wide Settings

Key configurations that affect the entire installation:

6. Server & Security Tools

7. Plugin Management

Moodle is modular. You can extend functionality with plugins from the Moodle Plugins Directory or custom-built ones.

8. Privacy & GDPR

Moodle includes a robust toolset for data privacy compliance (GDPR).

9. Language Customization

Don't hack the core code to change a text string! Use the Language Customization tool.

  1. Go to Site administration > Language > Language customization.
  2. Select the language pack (e.g., English (en)).
  3. "Open language pack for editing".
  4. Search for the string (e.g., "Log in").
  5. Enter your custom string (e.g., "Sign In") and save to the local language pack.

This creates a file in moodledata/lang/xx_local/ which persists across upgrades.