Update code and environment checks

This commit is contained in:
Luuk Verhoeven
2024-07-20 15:01:12 +02:00
parent 26bbc1cbdb
commit 8ae54193d2
7 changed files with 56 additions and 53 deletions

15
.github/workflows/AppScan.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
name: "HCL AppScan SAST"
on: [ push, pull_request ]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Run AppScan SAST scan
uses: HCL-TECH-SOFTWARE/appscan-sast-action@v1.0.1
with:
asoc_key: ${{secrets.ASOC_KEY}}
asoc_secret: ${{secrets.ASOC_SECRET}}
application_id: ${{secrets.ASOC_APPID}}

View File

@@ -1,24 +1,23 @@
## Moodle - availability ip address plugin ## Moodle - availability ip address plugin
Restrict access to any activity by ip-address. This plugin can be used to make any chosen activity unavailable based on the user's IP. 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 ## Author
![MFreak.nl](http://MFreak.nl/logo_small.png) ![ldesignmedia.nl](http://ldesignmedia.nl/logo_small.png)
* Author: Luuk Verhoeven, [MFreak.nl](https://MFreak.nl/) * Author: Luuk Verhoeven, [ldesignmedia.nl](https://ldesignmedia.nl/)
* Min. required: Moodle 3.5.x * Min. required: Moodle 4.0
* Supports PHP: 7.2 * Supports PHP: 7.4
[![Build Status](https://travis-ci.org/MFreakNL/moodle-availability_ipaddress.svg?branch=master)](https://travis-ci.org/MFreakNL/moodle-availability_ipaddress) ![Moodle400](https://img.shields.io/badge/moodle-4.0-brightgreen.svg?logo=moodle)
![Moodle35](https://img.shields.io/badge/moodle-3.5-brightgreen.svg) ![Moodle401](https://img.shields.io/badge/moodle-4.1-brightgreen.svg?logo=moodle)
![Moodle36](https://img.shields.io/badge/moodle-3.6-brightgreen.svg) ![Moodle402](https://img.shields.io/badge/moodle-4.2-brightgreen.svg?logo=moodle)
![Moodle37](https://img.shields.io/badge/moodle-3.7-brightgreen.svg) ![Moodle403](https://img.shields.io/badge/moodle-4.3-brightgreen.svg?logo=moodle)
![Moodle38](https://img.shields.io/badge/moodle-3.8-brightgreen.svg) ![Moodle404](https://img.shields.io/badge/moodle-4.4-brightgreen.svg?logo=moodle)
![Moodle39](https://img.shields.io/badge/moodle-3.9-brightgreen.svg)
![Moodle310](https://img.shields.io/badge/moodle-3.10-brightgreen.svg) ![PHP7.4](https://img.shields.io/badge/PHP-7.4-brightgreen.svg?logo=php)
![Moodle40](https://img.shields.io/badge/moodle-4.00-brightgreen.svg) ![PHP8.0](https://img.shields.io/badge/PHP-8.0-brightgreen.svg?logo=php)
![PHP7.2](https://img.shields.io/badge/PHP-7.2-brightgreen.svg) ![PHP8.1](https://img.shields.io/badge/PHP-8.1-brightgreen.svg?logo=php)
![PHP7.3](https://img.shields.io/badge/PHP-7.3-brightgreen.svg)
## List of features ## List of features
- Supports comma separate list of ip-addresses - Supports comma separate list of ip-addresses
@@ -32,7 +31,6 @@ Restrict access to any activity by ip-address. This plugin can be used to make a
3. Go to Site Administrator > Notification 3. Go to Site Administrator > Notification
4. Install the plugin 4. Install the plugin
## Usage ## Usage
1. Add or edit an activity in a Moodle course. 1. Add or edit an activity in a Moodle course.
@@ -47,7 +45,7 @@ Restrict access to any activity by ip-address. This plugin can be used to make a
## Security ## Security
If you discover any security related issues, please email [luuk@MFreak.nl](mailto:luuk@MFreak.nl) instead of using the issue tracker. If you discover any security related issues, please email [luuk@ldesignmedia.nl](mailto:luuk@ldesignmedia.nl) instead of using the issue tracker.
## License ## License
@@ -59,6 +57,7 @@ Contributions are welcome and will be fully credited. We accept contributions vi
## Changelog ## Changelog
- 2024072000 Tested on Moodle 4.4
- 2022021100 Thanks for adding ip-range support @[juacas](https://github.com/juacas) - 2022021100 Thanks for adding ip-range support @[juacas](https://github.com/juacas)
- 2022052800 Fixed the [issue 6](https://github.com/MFreakNL/moodle-availability_ipaddress/issues/6) @[hamzatamyachte](https://github.com/hamzatamyachte) - 2022052800 Fixed the [issue 6](https://github.com/ldesignmediaNL/moodle-availability_ipaddress/issues/6) @[hamzatamyachte](https://github.com/hamzatamyachte)
- 2022052801 Test in Moodle 4.0 @[hamzatamyachte](https://github.com/hamzatamyachte) - 2022052801 Test in Moodle 4.0 @[hamzatamyachte](https://github.com/hamzatamyachte)

View File

@@ -40,7 +40,7 @@ class condition extends \core_availability\condition {
/** /**
* @var string * @var string
*/ */
protected $ipaddresses = ''; protected string $ipaddresses = '';
/** /**
* condition constructor. * condition constructor.
@@ -140,34 +140,13 @@ class condition extends \core_availability\condition {
* *
* @return \stdClass Object representing condition * @return \stdClass Object representing condition
*/ */
public static function get_json($ipaddresses) : \stdClass { public static function get_json(string $ipaddresses): \stdClass {
return (object) [ return (object) [
'type' => 'ipaddress', 'type' => 'ipaddress',
'ipaddresses' => $ipaddresses, 'ipaddresses' => $ipaddresses,
]; ];
} }
/**
* Check if ip-address is valid
*
* @param string $ipaddresses
*
* @return bool
*/
public static function is_valid_ipaddresses($ipaddresses) : bool {
$ipaddresses = implode(',', $ipaddresses);
foreach ($ipaddresses as $ipaddress) {
if ( is_ip_address($ipaddress) === false &&
is_ipv4_range($ipaddress) === false &&
is_ipv6_range($ipaddress) === false ) {
return false;
}
}
return true;
}
/** /**
* Saves tree data back to a structure object. * Saves tree data back to a structure object.
* *
@@ -179,4 +158,5 @@ class condition extends \core_availability\condition {
'ipaddresses' => $this->ipaddresses, 'ipaddresses' => $this->ipaddresses,
]; ];
} }
} }

View File

@@ -46,4 +46,5 @@ class frontend extends \core_availability\frontend {
'error_ipaddress', 'error_ipaddress',
]; ];
} }
} }

View File

@@ -43,4 +43,5 @@ class provider implements \core_privacy\local\metadata\null_provider {
public static function get_reason(): string { public static function get_reason(): string {
return 'privacy:metadata'; return 'privacy:metadata';
} }
} }

6
environment.xml Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<COMPATIBILITY_MATRIX>
<PLUGIN name="availability_ipaddress">
<PHP version="7.4" level="required"/>
</PLUGIN>
</COMPATIBILITY_MATRIX>

View File

@@ -27,7 +27,8 @@
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
$plugin->component = 'availability_ipaddress'; $plugin->component = 'availability_ipaddress';
$plugin->version = 2022052801; $plugin->version = 2024072000;
$plugin->release = '3.11.2'; $plugin->release = '4.4.0';
$plugin->requires = 2016120500; $plugin->requires = 2016120500;
$plugin->maturity = MATURITY_STABLE; $plugin->maturity = MATURITY_STABLE;
$plugin->supported = [400, 404];