░▒▓████████████████████████████████▓▒░ ░▒▓█ ▓▒░ ░▒▓█ ~ S W A M P ~ ▓▒░ ░▒▓█ ▓▒░ ░▒▓████████████████████████████████▓▒░
pplmvsvm
LOCATION:
/var/www/moodle/public/enrol/lti/classes/local/ltiadvantage/service
☗ ROOT
↻ REFRESH
✎ CARVE FLESH
EDITING: tool_deployment_service.php
<?php // This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. namespace enrol_lti\local\ltiadvantage\service; use enrol_lti\local\ltiadvantage\entity\deployment; use enrol_lti\local\ltiadvantage\repository\application_registration_repository; use enrol_lti\local\ltiadvantage\repository\deployment_repository; use enrol_lti\local\ltiadvantage\repository\resource_link_repository; use enrol_lti\local\ltiadvantage\repository\context_repository; use enrol_lti\local\ltiadvantage\repository\user_repository; /** * Class tool_deployment_service. * * @package enrol_lti * @copyright 2021 Jake Dallimore <jrhdallimore@gmail.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class tool_deployment_service { /** @var application_registration_repository repository to work with application_registration instances. */ private $appregistrationrepo; /** @var deployment_repository repository to work with deployment instances. */ private $deploymentrepo; /** @var resource_link_repository repository to work with resource link instances. */ private $resourcelinkrepo; /** @var context_repository repository to work with context instances. */ private $contextrepo; /** @var user_repository repository to work with user instances. */ private $userrepo; /** * The tool_deployment_service constructor. * * @param application_registration_repository $appregistrationrepo an application_registration_repository instance. * @param deployment_repository $deploymentrepo a deployment_repository instance. * @param resource_link_repository $resourcelinkrepo a resource_link_repository instance. * @param context_repository $contextrepo a context_repository instance. * @param user_repository $userrepo a user_repository instance. */ public function __construct(application_registration_repository $appregistrationrepo, deployment_repository $deploymentrepo, resource_link_repository $resourcelinkrepo, context_repository $contextrepo, user_repository $userrepo) { $this->appregistrationrepo = $appregistrationrepo; $this->deploymentrepo = $deploymentrepo; $this->resourcelinkrepo = $resourcelinkrepo; $this->contextrepo = $contextrepo; $this->userrepo = $userrepo; } /** * Service handling the use case "As an admin I can add a tool deployment to a platform registration". * * @param \stdClass $requestdto the required service data. * @return deployment the deployment instance which has been created. * @throws \coding_exception if the registration doesn't exist. */ public function add_tool_deployment(\stdClass $requestdto): deployment { // DTO contains: registration_id, deployment_id, deployment_name. [ 'registration_id' => $registrationid, 'deployment_id' => $deploymentid, 'deployment_name' => $deploymentname ] = (array) $requestdto; $registration = $this->appregistrationrepo->find($registrationid); if (is_null($registration)) { throw new \coding_exception("Cannot add deployment to non-existent application registration ". "'$registrationid'"); } $deployment = $registration->add_tool_deployment($deploymentname, $deploymentid); return $this->deploymentrepo->save($deployment); } /** * Service handling the use case "As an admin I can delete a tool deployment from a platform registration". * * @param int $deploymentid the id of the deployment to remove. */ public function delete_tool_deployment(int $deploymentid): void { // Delete any resource links attached to this deployment. $this->resourcelinkrepo->delete_by_deployment($deploymentid); // Delete any context entries for the deployment. $this->contextrepo->delete_by_deployment($deploymentid); // Delete all enrolments for any users tied to this deployment. global $DB, $CFG; $sql = "SELECT lu.userid as ltiuserid, e.* FROM {enrol_lti_users} lu JOIN {enrol_lti_tools} lt ON (lt.id = lu.toolid) JOIN {enrol} e ON (e.id = lt.enrolid) WHERE lu.ltideploymentid = :deploymentid"; $instancesrs = $DB->get_recordset_sql($sql, ['deploymentid' => $deploymentid]); require_once($CFG->dirroot . '/enrol/lti/lib.php'); $enrollti = new \enrol_lti_plugin(); foreach ($instancesrs as $instance) { $userid = $instance->ltiuserid; $enrollti->unenrol_user($instance, $userid); } $instancesrs->close(); // Delete any lti user enrolments. $this->userrepo->delete_by_deployment($deploymentid); // Delete the deployment itself. $this->deploymentrepo->delete($deploymentid); } }
CANCEL
Name
Type
Size
Modified
Actions
↩ ..
DIR
—
—
📄 application_registration_service.php
PHP
7 KB
2026-02-11 01:44
EDIT
📄 tool_deployment_service.php
PHP
5.5 KB
2026-02-11 01:44
EDIT
📄 tool_launch_service.php
PHP
17.5 KB
2026-02-11 01:44
EDIT