Nihaal Shaikh 06a5f9c8c9 Fix #2 - Reject IP addresses that Moodle cannot match
The custom IP field and the predefined ranges form accepted invalid
entries such as 2001:db8::1garbage, 192.168.1.0/24garbage or
192.168.1.0/999. address_in_subnet() silently skips those entries, so a
"must not" restriction with a typo let blocked users in.

Validation now only accepts formats address_in_subnet() can match: a
single address, a subnet (mask 0-32 / 0-128) or a range in the last
group with end >= start. IPv6 forms cleanremoteaddr() cannot parse are
rejected as well. JS and PHP share the same rules; PHP also checks each
entry against address_in_subnet() as a safety net.

- Allow spaces after commas in the restriction field
- Support IPv6 ranges, e.g. 2001:db8::1-ff
- Add PHPUnit tests for helper::is_valid_ipaddress_list()
- Bump version to 2026101500 (5.3.2)
2026-10-15 09:04:58 +02:00
2019-05-14 12:25:43 +02:00
2019-05-14 20:08:02 +02:00

Moodle - availability ip address plugin

CI Status

Enhance activity security by restricting access based on IP address. This plugin allows you to control the availability of any chosen activity, making it accessible only to users from specified IP addresses.

Author

ldesignmedia

Moodle400 Moodle401 Moodle402 Moodle403 Moodle404 Moodle405 Moodle500 Moodle501 Moodle502 Moodle503

PHP7.3 PHP7.4 PHP8.0 PHP8.1 PHP8.2

List of features

  • Supports comma separate list of ip-addresses
  • Subnet support, eg 192.168.1.0/24
  • Inline ip-address validation
  • Turning on/off with eye icon, without losing the input value.

Installation

  1. Copy this plugin to the availability\condition\ipaddress folder on the server
  2. Login as administrator
  3. Go to Site Administrator > Notification
  4. Install the plugin

Usage

  1. Add or edit an activity in a Moodle course.
  2. Go to the section "Restrict access"
  3. Click IP address in the modal
  4. There's a new input field that supports a list of comma separated ip address e.g. 127.0.0.1, 192.168.1.0/24
    1. The users with matching ip addresses can view the activity.
  5. Save the activity

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

License

The GNU GENERAL PUBLIC LICENSE. Please see License File for more information.

Contributing

Contributions are welcome and will be fully credited. We accept contributions via Pull Requests on Github.

Changelog

See CHANGELOG.md for a full list of changes.

Languages
PHP 100%