|
|
|
|
@ -167,30 +167,60 @@ class ImsLtiPlugin extends Plugin |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$queries = [ |
|
|
|
|
'CREATE TABLE '.self::TABLE_TOOL.' ( |
|
|
|
|
id INT AUTO_INCREMENT NOT NULL, |
|
|
|
|
c_id INT DEFAULT NULL, |
|
|
|
|
gradebook_eval_id INT DEFAULT NULL, |
|
|
|
|
parent_id INT DEFAULT NULL, |
|
|
|
|
name VARCHAR(255) NOT NULL, |
|
|
|
|
description LONGTEXT DEFAULT NULL, |
|
|
|
|
launch_url VARCHAR(255) NOT NULL, |
|
|
|
|
consumer_key VARCHAR(255) DEFAULT NULL, |
|
|
|
|
shared_secret VARCHAR(255) DEFAULT NULL, |
|
|
|
|
custom_params LONGTEXT DEFAULT NULL, |
|
|
|
|
active_deep_linking TINYINT(1) DEFAULT \'0\' NOT NULL, |
|
|
|
|
privacy LONGTEXT DEFAULT NULL, |
|
|
|
|
INDEX IDX_C5E47F7C91D79BD3 (c_id), |
|
|
|
|
INDEX IDX_C5E47F7C82F80D8B (gradebook_eval_id), |
|
|
|
|
INDEX IDX_C5E47F7C727ACA70 (parent_id), |
|
|
|
|
PRIMARY KEY(id) |
|
|
|
|
) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB', |
|
|
|
|
'ALTER TABLE '.self::TABLE_TOOL.' ADD CONSTRAINT FK_C5E47F7C91D79BD3 |
|
|
|
|
FOREIGN KEY (c_id) REFERENCES course (id)', |
|
|
|
|
'ALTER TABLE '.self::TABLE_TOOL.' ADD CONSTRAINT FK_C5E47F7C82F80D8B |
|
|
|
|
FOREIGN KEY (gradebook_eval_id) REFERENCES gradebook_evaluation (id) ON DELETE SET NULL', |
|
|
|
|
'ALTER TABLE '.self::TABLE_TOOL.' ADD CONSTRAINT FK_C5E47F7C727ACA70 |
|
|
|
|
FOREIGN KEY (parent_id) REFERENCES '.self::TABLE_TOOL.' (id) ON DELETE CASCADE;', |
|
|
|
|
"CREATE TABLE plugin_ims_lti_tool ( |
|
|
|
|
id INT AUTO_INCREMENT NOT NULL, |
|
|
|
|
c_id INT DEFAULT NULL, |
|
|
|
|
gradebook_eval_id INT DEFAULT NULL, |
|
|
|
|
parent_id INT DEFAULT NULL, |
|
|
|
|
name VARCHAR(255) NOT NULL, |
|
|
|
|
description LONGTEXT DEFAULT NULL, |
|
|
|
|
launch_url VARCHAR(255) NOT NULL, |
|
|
|
|
consumer_key VARCHAR(255) DEFAULT NULL, |
|
|
|
|
shared_secret VARCHAR(255) DEFAULT NULL, |
|
|
|
|
custom_params LONGTEXT DEFAULT NULL, |
|
|
|
|
active_deep_linking TINYINT(1) DEFAULT '0' NOT NULL, |
|
|
|
|
privacy LONGTEXT DEFAULT NULL, |
|
|
|
|
client_id VARCHAR(255) DEFAULT NULL, |
|
|
|
|
public_key LONGTEXT DEFAULT NULL, |
|
|
|
|
login_url VARCHAR(255) DEFAULT NULL, |
|
|
|
|
redirect_url VARCHAR(255) DEFAULT NULL, |
|
|
|
|
advantage_services LONGTEXT DEFAULT NULL COMMENT '(DC2Type:json)', |
|
|
|
|
INDEX IDX_C5E47F7C91D79BD3 (c_id), |
|
|
|
|
INDEX IDX_C5E47F7C82F80D8B (gradebook_eval_id), |
|
|
|
|
INDEX IDX_C5E47F7C727ACA70 (parent_id), |
|
|
|
|
PRIMARY KEY(id) |
|
|
|
|
) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB", |
|
|
|
|
"CREATE TABLE plugin_ims_lti_deployment ( |
|
|
|
|
id INT AUTO_INCREMENT NOT NULL, |
|
|
|
|
PRIMARY KEY(id) |
|
|
|
|
) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB", |
|
|
|
|
"CREATE TABLE plugin_ims_lti_platform ( |
|
|
|
|
id INT AUTO_INCREMENT NOT NULL, |
|
|
|
|
kid VARCHAR(255) NOT NULL, |
|
|
|
|
public_key LONGTEXT NOT NULL, |
|
|
|
|
private_key LONGTEXT NOT NULL, |
|
|
|
|
PRIMARY KEY(id) |
|
|
|
|
) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB", |
|
|
|
|
"CREATE TABLE plugin_ims_lti_token ( |
|
|
|
|
id INT AUTO_INCREMENT NOT NULL, |
|
|
|
|
tool_id INT DEFAULT NULL, |
|
|
|
|
scope LONGTEXT NOT NULL COMMENT '(DC2Type:json)', |
|
|
|
|
hash VARCHAR(255) NOT NULL, |
|
|
|
|
created_at INT NOT NULL, |
|
|
|
|
expires_at INT NOT NULL, |
|
|
|
|
INDEX IDX_F7B5692F8F7B22CC (tool_id), |
|
|
|
|
PRIMARY KEY(id) |
|
|
|
|
) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB", |
|
|
|
|
"ALTER TABLE plugin_ims_lti_tool |
|
|
|
|
ADD CONSTRAINT FK_C5E47F7C91D79BD3 FOREIGN KEY (c_id) REFERENCES course (id)", |
|
|
|
|
"ALTER TABLE plugin_ims_lti_tool |
|
|
|
|
ADD CONSTRAINT FK_C5E47F7C82F80D8B FOREIGN KEY (gradebook_eval_id) |
|
|
|
|
REFERENCES gradebook_evaluation (id) ON DELETE SET NULL", |
|
|
|
|
"ALTER TABLE plugin_ims_lti_tool |
|
|
|
|
ADD CONSTRAINT FK_C5E47F7C727ACA70 FOREIGN KEY (parent_id) |
|
|
|
|
REFERENCES plugin_ims_lti_tool (id) ON DELETE CASCADE", |
|
|
|
|
"ALTER TABLE plugin_ims_lti_token |
|
|
|
|
ADD CONSTRAINT FK_F7B5692F8F7B22CC FOREIGN KEY (tool_id) REFERENCES plugin_ims_lti_tool (id)", |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
foreach ($queries as $query) { |
|
|
|
|
@ -207,16 +237,10 @@ class ImsLtiPlugin extends Plugin |
|
|
|
|
*/ |
|
|
|
|
private function dropPluginTables() |
|
|
|
|
{ |
|
|
|
|
$entityManager = Database::getManager(); |
|
|
|
|
$connection = $entityManager->getConnection(); |
|
|
|
|
$chamiloSchema = $connection->getSchemaManager(); |
|
|
|
|
|
|
|
|
|
if (!$chamiloSchema->tablesExist([self::TABLE_TOOL])) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$sql = 'DROP TABLE IF EXISTS '.self::TABLE_TOOL; |
|
|
|
|
Database::query($sql); |
|
|
|
|
Database::query("DROP TABLE IF EXISTS plugin_ims_lti_token"); |
|
|
|
|
Database::query("DROP TABLE IF EXISTS plugin_ims_lti_platform"); |
|
|
|
|
Database::query("DROP TABLE IF EXISTS plugin_ims_lti_deployment"); |
|
|
|
|
Database::query("DROP TABLE IF EXISTS plugin_ims_lti_tool"); |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|