From 43d268274473cd99f16e12271bee49767867ca88 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 9 Jun 2018 11:39:03 +0400 Subject: External API Signed-off-by: Valentin Popov --- externallib.php | 237 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 externallib.php (limited to 'externallib.php') diff --git a/externallib.php b/externallib.php new file mode 100644 index 0000000..8054fcc --- /dev/null +++ b/externallib.php @@ -0,0 +1,237 @@ +. + +/** + * External API. + * + * @copyright 2018 "Valentin Popov" + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package tool_apisiteadmins + */ + +defined("MOODLE_INTERNAL") || die(); + +require_once(__DIR__ . "/lib.php"); + +require_once($CFG->dirroot . "/lib/external/externallib.php"); +require_once($CFG->dirroot . "/user/externallib.php"); +require_once($CFG->dirroot . "/user/lib.php"); + +/** + * External functions. + * + * @copyright 2018 "Valentin Popov" + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package tool_apisiteadmins + */ +class tool_apisiteadmins_external extends external_api { + /** + * Returns description of method parameters. + * + * @return external_function_parameters + * @since Moodle 2.2 + */ + public static function add_to_administrators_parameters() { + return new external_function_parameters( + array( + "userid" => new external_value(PARAM_INT, "ID of the user") + ) + ); + } + + /** + * Adds a user to the list of administrators. + * + * @param number $userid System user ID + * @return boolean Result of execution + * @since Moodle 2.2 + * @throws moodle_exception + */ + public static function add_to_administrators($userid) { + $parameters = self::validate_parameters(self::add_to_administrators_parameters(), array("userid" => $userid)); + + $context = context_system::instance(); + self::validate_context($context); + + return tool_apisiteadmins::add_user($parameters["userid"]); + } + + /** + * Returns description of method result value. + * + * @return external_description + * @since Moodle 2.2 + */ + public static function add_to_administrators_returns() { + return new external_value(PARAM_BOOL, "Result of execution"); + } + + /** + * Returns description of method parameters. + * + * @return external_function_parameters + * @since Moodle 2.2 + */ + public static function remove_from_administrators_parameters() { + return new external_function_parameters( + array( + "userid" => new external_value(PARAM_INT, "ID of the user") + ) + ); + } + + /** + * Removes a user from the list of administrators. + * + * @param number $userid System user ID + * @return boolean Result of execution + * @since Moodle 2.2 + * @throws moodle_exception + */ + public static function remove_from_administrators($userid) { + $parameters = self::validate_parameters(self::remove_from_administrators_parameters(), array("userid" => $userid)); + + $context = context_system::instance(); + self::validate_context($context); + + return tool_apisiteadmins::remove_user($parameters["userid"]); + } + + /** + * Returns description of method result value. + * + * @return external_description + * @since Moodle 2.2 + */ + public static function remove_from_administrators_returns() { + return new external_value(PARAM_BOOL, "Result of execution"); + } + + /** + * Returns description of method parameters. + * + * @return external_function_parameters + * @since Moodle 2.2 + */ + public static function change_main_administrator_parameters() { + return new external_function_parameters( + array( + "userid" => new external_value(PARAM_INT, "ID of the user") + ) + ); + } + + /** + * Registers the user as the primary administrator. + * + * @param number $userid System user ID + * @return boolean Result of execution + * @since Moodle 2.2 + * @throws moodle_exception + */ + public static function change_main_administrator($userid) { + $parameters = self::validate_parameters(self::change_main_administrator_parameters(), array("userid" => $userid)); + + $context = context_system::instance(); + self::validate_context($context); + + return tool_apisiteadmins::set_main($parameters["userid"]); + } + + /** + * Returns description of method result value. + * + * @return external_description + * @since Moodle 2.2 + */ + public static function change_main_administrator_returns() { + return new external_value(PARAM_BOOL, "Result of execution"); + } + + /** + * Returns description of method parameters. + * + * @return external_function_parameters + * @since Moodle 2.2 + */ + public static function get_main_administrator_parameters() { + return new external_function_parameters(array()); + } + + /** + * Gets information about the main administrator. + * + * @return array An array of arrays containg user profiles + * @since Moodle 2.2 + */ + public static function get_main_administrator() { + $context = context_system::instance(); + self::validate_context($context); + + $result = array(); + $result[] = user_get_user_details(get_admin()); + + return $result; + } + + /** + * Returns description of method result value. + * + * @return external_description + * @since Moodle 2.2 + */ + public static function get_main_administrator_returns() { + return new external_multiple_structure(core_user_external::user_description()); + } + + /** + * Returns description of method parameters. + * + * @return external_function_parameters + * @since Moodle 2.2 + */ + public static function get_list_administrators_parameters() { + return new external_function_parameters(array()); + } + + /** + * Gets the list of administrators in the system. + * + * @return array An array of arrays containg user profiles + * @since Moodle 2.2 + */ + public static function get_list_administrators() { + $context = context_system::instance(); + self::validate_context($context); + + $result = array(); + foreach (get_admins() as $user) { + $result[] = user_get_user_details($user); + } + + return $result; + } + + /** + * Returns description of method result value. + * + * @return external_description + * @since Moodle 2.2 + */ + public static function get_list_administrators_returns() { + return new external_multiple_structure(core_user_external::user_description()); + } +} -- cgit v1.2.3 From 62c0ddbcd27f93fd9e2882dd035ab83a848ee3c4 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Mon, 11 Jun 2018 19:00:07 +0400 Subject: Fix check MOODLE_INTERNAL Signed-off-by: Valentin Popov --- classes/event/administrator_added.php | 2 +- classes/event/administrator_changed.php | 2 +- classes/event/administrator_deleted.php | 2 +- db/services.php | 2 +- externallib.php | 2 +- lib.php | 2 +- tests/api_test.php | 2 +- tests/external_test.php | 2 +- version.php | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) (limited to 'externallib.php') diff --git a/classes/event/administrator_added.php b/classes/event/administrator_added.php index 509f1b6..dd1aab2 100644 --- a/classes/event/administrator_added.php +++ b/classes/event/administrator_added.php @@ -24,7 +24,7 @@ namespace tool_apisiteadmins\event; -defined("MOODLE_INTERNAL") || die(); +defined('MOODLE_INTERNAL') || die(); /** * Defines how to work with events. diff --git a/classes/event/administrator_changed.php b/classes/event/administrator_changed.php index 97966f8..4280d1d 100644 --- a/classes/event/administrator_changed.php +++ b/classes/event/administrator_changed.php @@ -24,7 +24,7 @@ namespace tool_apisiteadmins\event; -defined("MOODLE_INTERNAL") || die(); +defined('MOODLE_INTERNAL') || die(); /** * Defines how to work with events. diff --git a/classes/event/administrator_deleted.php b/classes/event/administrator_deleted.php index 944dab5..81b89b9 100644 --- a/classes/event/administrator_deleted.php +++ b/classes/event/administrator_deleted.php @@ -24,7 +24,7 @@ namespace tool_apisiteadmins\event; -defined("MOODLE_INTERNAL") || die(); +defined('MOODLE_INTERNAL') || die(); /** * Defines how to work with events. diff --git a/db/services.php b/db/services.php index da355b3..7212a72 100644 --- a/db/services.php +++ b/db/services.php @@ -22,7 +22,7 @@ * @package tool_apisiteadmins */ -defined("MOODLE_INTERNAL") || die(); +defined('MOODLE_INTERNAL') || die(); $functions = array( "tool_apisiteadmins_add_to_administrators" => array( diff --git a/externallib.php b/externallib.php index 8054fcc..3f83eca 100644 --- a/externallib.php +++ b/externallib.php @@ -22,7 +22,7 @@ * @package tool_apisiteadmins */ -defined("MOODLE_INTERNAL") || die(); +defined('MOODLE_INTERNAL') || die(); require_once(__DIR__ . "/lib.php"); diff --git a/lib.php b/lib.php index b67904f..d41597b 100644 --- a/lib.php +++ b/lib.php @@ -22,7 +22,7 @@ * @package tool_apisiteadmins */ -defined("MOODLE_INTERNAL") || die(); +defined('MOODLE_INTERNAL') || die(); /** * Functions for working with the list of administrators. diff --git a/tests/api_test.php b/tests/api_test.php index a0c6fef..8155545 100644 --- a/tests/api_test.php +++ b/tests/api_test.php @@ -22,7 +22,7 @@ * @package tool_apisiteadmins */ -defined("MOODLE_INTERNAL") || die(); +defined('MOODLE_INTERNAL') || die(); global $CFG; diff --git a/tests/external_test.php b/tests/external_test.php index 7368550..83c58c5 100644 --- a/tests/external_test.php +++ b/tests/external_test.php @@ -22,7 +22,7 @@ * @package tool_apisiteadmins */ -defined("MOODLE_INTERNAL") || die(); +defined('MOODLE_INTERNAL') || die(); global $CFG; diff --git a/version.php b/version.php index 21a36bb..460c521 100644 --- a/version.php +++ b/version.php @@ -22,7 +22,7 @@ * @package tool_apisiteadmins */ -defined("MOODLE_INTERNAL") || die(); +defined('MOODLE_INTERNAL') || die(); $plugin->component = "tool_apisiteadmins"; $plugin->maturity = MATURITY_STABLE; -- cgit v1.2.3