aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: ffc459772b8263cde8ee9295f514166d1388ab4f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# Advanced API administration management

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).