. namespace core\moodlenet; use core\oauth2\issuer; /** * Class containing static utilities (such as various checks) required by the MoodleNet API. * * @package core * @copyright 2023 Michael Hawkins * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class utilities { /** * Check whether the specified issuer is configured as a MoodleNet instance that can be shared to. * * @param issuer $issuer The OAuth 2 issuer being validated. * @return bool true if the issuer is enabled and available to share to. */ public static function is_valid_instance(issuer $issuer): bool { global $CFG; $issuerid = $issuer->get('id'); $allowedissuer = get_config('moodlenet', 'oauthservice'); return ($CFG->enablesharingtomoodlenet && $issuerid == $allowedissuer && $issuer->get('enabled') && $issuer->get('servicetype') == 'moodlenet'); } /** * Check whether a user has the capabilities required to share activities from a given course to MoodleNet. * * @param \core\context\course $coursecontext Course context where the activity would be shared from. * @param int $userid The user ID being checked. * @return boolean */ public static function can_user_share(\core\context\course $coursecontext, int $userid): bool { return (has_capability('moodle/moodlenet:shareactivity', $coursecontext, $userid) && has_capability('moodle/backup:backupactivity', $coursecontext, $userid)); } }