2018-06-11 11:58:13 +04:00
|
|
|
# Advanced API administration management
|
|
|
|
|
2018-06-12 10:27:57 +04:00
|
|
|
[](https://github.com/valentineus/moodle-tool_apisiteadmins/releases)
|
|
|
|
[](https://travis-ci.org/valentineus/moodle-tool_apisiteadmins)
|
|
|
|
[](https://www.codacy.com/app/valentineus/moodle-tool_apisiteadmins)
|
|
|
|
|
2018-06-11 11:58:13 +04:00
|
|
|
The plug-in extends and complements the system API for managing administrators.
|
|
|
|
Main library is well documented and tested.
|
|
|
|
Can be used by third-party developers for development.
|
|
|
|
|
|
|
|
In addition, the plugin adds functions for
|
|
|
|
[Web services](https://docs.moodle.org/dev/Web_services)
|
|
|
|
that interact with the list of administrators.
|
|
|
|
For documentation on Web services, see Moodle:
|
|
|
|
`https://example.domain/admin/webservice/documentation.php`
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
Get the installation package in any of the available methods:
|
|
|
|
|
|
|
|
* [GitHub Releases](https://github.com/valentineus/moodle-tool_apisiteadmins/releases).
|
|
|
|
* [Compilation from the source code](#build).
|
|
|
|
|
|
|
|
In Moodle in the administration panel go to the "Plugins" section and make a
|
|
|
|
standard installation of the plug-in.
|
|
|
|
|
|
|
|
## Testing
|
|
|
|
|
|
|
|
* Perform the installation of `PHPUnit` and configure the test environment.
|
|
|
|
Use the
|
|
|
|
[official guide](https://docs.moodle.org/dev/PHPUnit#Installation_of_PHPUnit_via_Composer)
|
|
|
|
for detailed information.
|
|
|
|
|
|
|
|
* To run the plugin test, use the following commands:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# Run all tests
|
|
|
|
php vendor/bin/phpunit --testdox --group tool_apisiteadmins
|
|
|
|
|
|
|
|
# Or running individual tests
|
|
|
|
php vendor/bin/phpunit --testdox tool_apisiteadmins_api_testcase admin/tool/apisiteadmins/tests/api_test.php
|
|
|
|
php vendor/bin/phpunit --testdox tool_apisiteadmins_external_testcase admin/tool/apisiteadmins/tests/external_test.php
|
|
|
|
```
|
|
|
|
|
|
|
|
## Build
|
|
|
|
|
|
|
|
Self-assembly package is as follows:
|
|
|
|
|
|
|
|
* Clone the repository:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
git clone https://github.com/valentineus/moodle-tool_apisiteadmins.git apisiteadmins
|
|
|
|
```
|
|
|
|
|
|
|
|
* Run the build script:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
cd ./apisiteadmins
|
|
|
|
/bin/sh build.sh
|
|
|
|
```
|
|
|
|
|
|
|
|
## API
|
|
|
|
|
|
|
|
### tool_apisiteadmins::add_user( $userid ) ⇒`Boolean`
|
|
|
|
|
|
|
|
Adds a user to the list of administrators.
|
|
|
|
|
|
|
|
| Param | Type | Description |
|
|
|
|
| ------- | -------- | -------------- |
|
|
|
|
| $userid | `Number` | System user ID |
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
```php
|
|
|
|
require_once($CFG->dirroot . "/admin/tool/apisiteadmins/lib.php");
|
|
|
|
|
|
|
|
$userid = 2;
|
|
|
|
tool_apisiteadmins::add_user($userid);
|
|
|
|
// result: true
|
|
|
|
```
|
|
|
|
|
|
|
|
### tool_apisiteadmins::remove_user( $userid ) ⇒`Boolean`
|
|
|
|
|
|
|
|
Removes a user from the list of administrators.
|
|
|
|
|
|
|
|
| Param | Type | Description |
|
|
|
|
| ------- | -------- | -------------- |
|
|
|
|
| $userid | `Number` | System user ID |
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
```php
|
|
|
|
require_once($CFG->dirroot . "/admin/tool/apisiteadmins/lib.php");
|
|
|
|
|
|
|
|
$userid = 2;
|
|
|
|
tool_apisiteadmins::remove_user($userid);
|
|
|
|
// result: true
|
|
|
|
```
|
|
|
|
|
|
|
|
### tool_apisiteadmins::set_main( $userid ) ⇒`Boolean`
|
|
|
|
|
|
|
|
Registers the user as the primary administrator.
|
|
|
|
|
|
|
|
| Param | Type | Description |
|
|
|
|
| ------- | -------- | -------------- |
|
|
|
|
| $userid | `Number` | System user ID |
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
```php
|
|
|
|
require_once($CFG->dirroot . "/admin/tool/apisiteadmins/lib.php");
|
|
|
|
|
|
|
|
$userid = 2;
|
|
|
|
tool_apisiteadmins::set_main($userid);
|
|
|
|
// result: true
|
|
|
|
```
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
<img height="256px" alt="GNU Banner" src="https://www.gnu.org/graphics/runfreegnu.png" />
|
|
|
|
|
|
|
|
[GNU GPLv3](LICENSE.txt).
|
|
|
|
Copyright (c)
|
|
|
|
[Valentin Popov](mailto:info@valentineus.link).
|