diff options
| author | Moritz Strohm <strohm@data-quest.de> | 2025-07-04 11:26:26 +0000 |
|---|---|---|
| committer | Rasmus Fuhse <fuhse@data-quest.de> | 2025-07-04 11:26:26 +0000 |
| commit | d98e8f811ee969fc94f922a70ad270ff02d057fc (patch) | |
| tree | 48de96c46855f4dd2b440e7e3c07bc6d9fa41641 /db | |
| parent | 414e0080d467297bbc00ca3ba12cce6112a7367d (diff) | |
course/lti/process_select_link: redirect on error with deployments, fixes #5488
Closes #5488
Merge request studip/studip!4183
Diffstat (limited to 'db')
| -rw-r--r-- | db/migrations/6.0.51_add_columns_to_lti_resource_links_table.php | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/db/migrations/6.0.51_add_columns_to_lti_resource_links_table.php b/db/migrations/6.0.51_add_columns_to_lti_resource_links_table.php new file mode 100644 index 0000000..9385908 --- /dev/null +++ b/db/migrations/6.0.51_add_columns_to_lti_resource_links_table.php @@ -0,0 +1,79 @@ +<?php + + +class AddColumnsToLtiResourceLinksTable extends Migration +{ + public function description() + { + return 'Add missing columns to the lti_resource_links table.'; + } + + protected function up() + { + $db = DBManager::get(); + + //Clone the launch_url and options column from lti_deployments: + $db->exec( + "ALTER TABLE `lti_resource_links` + ADD COLUMN `title` VARCHAR(255) NOT NULL DEFAULT '', + ADD COLUMN `description` TEXT NULL, + ADD COLUMN `launch_url` VARCHAR(255) NOT NULL DEFAULT '', + ADD COLUMN `options` TEXT" + ); + + $db->exec( + "UPDATE `lti_resource_links` + JOIN `lti_deployments` + ON `lti_deployments`.`id` = `lti_resource_links`.`deployment_id` + SET + `lti_resource_links`.`title` = `lti_deployments`.`title`, + `lti_resource_links`.`description` = `lti_deployments`.`description`, + `lti_resource_links`.`launch_url` = `lti_deployments`.`launch_url`, + `lti_resource_links`.`options` = `lti_deployments`.`options`" + ); + + $db->exec( + "ALTER TABLE `lti_deployments` + DROP COLUMN `title`, + DROP COLUMN `description`, + DROP COLUMN `launch_url`, + DROP COLUMN `options`, + ADD COLUMN `purpose` ENUM ('general', 'deep_linking') NOT NULL DEFAULT 'general', + ADD COLUMN `name` VARCHAR(255) NOT NULL DEFAULT ''" + ); + } + + protected function down() + { + $db = DBManager::get(); + + $db->exec( + "ALTER TABLE `lti_deployments` + DROP COLUMN `name`, + DROP COLUMN `purpose`, + ADD COLUMN `title` VARCHAR(255) NOT NULL DEFAULT '', + ADD COLUMN `description` TEXT NULL, + ADD COLUMN `launch_url` VARCHAR(255) NOT NULL DEFAULT '', + ADD COLUMN `options` TEXT" + ); + + $db->exec( + "UPDATE `lti_deployments` + JOIN `lti_resource_links` + ON `lti_deployments`.`id` = `lti_resource_links`.`deployment_id` + SET + `lti_deployments`.`title` = `lti_resource_links`.`title`, + `lti_deployments`.`description` = `lti_resource_links`.`description`, + `lti_deployments`.`launch_url` = `lti_resource_links`.`launch_url`, + `lti_deployments`.`options` = `lti_resource_links`.`options`" + ); + + $db->exec( + "ALTER TABLE `lti_resource_links` + DROP COLUMN `title`, + DROP COLUMN `description`, + DROP COLUMN launch_url, + DROP COLUMN `options`" + ); + } +} |
