Skip to content

Commit 31e0392

Browse files
Add LTI 1.3
1 parent 9618559 commit 31e0392

File tree

124 files changed

+5063
-880
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+5063
-880
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,4 @@ tags
1919
vendor/
2020
.idea
2121
.data
22+
.DS_Store

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ RUN apt-get update && apt-get install --no-install-recommends --no-install-sugge
1010
&& rm -rf /var/lib/apt/lists/* \
1111
&& ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \
1212
&& ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \
13-
&& docker-php-ext-install -j$(nproc) xml gd ldap mysqli \
13+
&& docker-php-ext-install -j$(nproc) xml gd ldap mysqli intl \
1414
&& pecl install timezonedb xdebug\
1515
&& docker-php-ext-enable timezonedb xdebug\
1616
&& curl https://getcomposer.org/download/1.8.4/composer.phar -o /usr/local/bin/composer \
@@ -20,7 +20,7 @@ COPY docker/php.ini /usr/local/etc/php/
2020
COPY . /var/www/html
2121

2222
RUN cd /var/www/html \
23-
&& composer install --no-ansi --no-dev --no-interaction --no-plugins --no-progress --no-suggest --optimize-autoloader \
23+
&& composer install --no-ansi --no-dev --no-interaction --no-plugins --no-progress --no-scripts --no-suggest --optimize-autoloader \
2424
&& mkdir -p /var/www/html/app/tmp/cache/persistent /var/www/html/app/tmp/cache/models /var/www/html/app/tmp/logs \
2525
&& chown www-data:www-data -R /var/www/html/app/tmp/cache \
2626
&& ln -sf /dev/stdout /var/www/html/app/tmp/logs/api.log \

Dockerfile-app-unittest

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ RUN apt-get update && apt-get install --no-install-recommends --no-install-sugge
1212
&& rm -rf /var/lib/apt/lists/* \
1313
&& ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \
1414
&& ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \
15-
&& docker-php-ext-install -j$(nproc) xml gd ldap mysqli pdo_mysql\
15+
&& docker-php-ext-install -j$(nproc) xml gd ldap mysqli pdo_mysql intl \
1616
&& pecl install timezonedb \
1717
&& docker-php-ext-enable timezonedb \
18+
&& pecl install xdebug \
19+
&& docker-php-ext-enable xdebug \
1820
&& curl https://getcomposer.org/download/1.8.4/composer.phar -o /usr/local/bin/composer \
1921
&& chmod +x /usr/local/bin/composer \
2022
&& pecl install -f oauth-2.0.2 \

app/config/core.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@
324324
/**
325325
* iPeer database version
326326
*/
327-
Configure::write('DATABASE_VERSION', 17);
327+
Configure::write('DATABASE_VERSION', 18);
328328

329329

330330
$CWL['LoginURL'] = 'https://www.auth.cwl.ubc.ca/auth/login';
@@ -347,7 +347,7 @@
347347
$CWL['applicationID'] = '';
348348
$CWL['applicationPassword'] = '';
349349

350-
define('IPEER_VERSION', '3.4.6');
350+
define('IPEER_VERSION', '3.4.7');
351351

352352

353353
/**

app/config/sql/delta_18.sql

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
ALTER TABLE `courses` MODIFY `canvas_id` varchar(255) NULL DEFAULT NULL;
2+
ALTER TABLE `courses` ADD INDEX `canvas_id` (`canvas_id`);
3+
ALTER TABLE `users` DROP `lti_id`;
4+
5+
DROP TABLE IF EXISTS `lti_tool_registrations`;
6+
CREATE TABLE `lti_tool_registrations` (
7+
`id` int(11) NOT NULL AUTO_INCREMENT,
8+
`iss` varchar(255) NOT NULL,
9+
`client_id` varchar(255) NOT NULL,
10+
`auth_login_url` varchar(255) NOT NULL,
11+
`auth_token_url` varchar(255) NOT NULL,
12+
`key_set_url` varchar(255) NOT NULL,
13+
`tool_private_key` text NOT NULL,
14+
`tool_public_key` text NOT NULL,
15+
`user_identifier_field` varchar(255) DEFAULT NULL,
16+
`student_number_field` varchar(255) DEFAULT NULL,
17+
`term_field` varchar(255) DEFAULT NULL,
18+
`canvas_id_field` varchar(255) DEFAULT NULL,
19+
`faculty_name_field` varchar(255) DEFAULT NULL,
20+
PRIMARY KEY (`id`),
21+
UNIQUE KEY `iss` (`iss`),
22+
KEY `client_id` (`client_id`)
23+
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
24+
25+
INSERT INTO `acos` (id, parent_id, model, foreign_key, alias, lft, rght) VALUES
26+
(338,2,NULL,NULL,'Ltitoolregistrations',664,673),
27+
(339,338,NULL,NULL,'index',665,666),
28+
(340,338,NULL,NULL,'add',667,668),
29+
(341,338,NULL,NULL,'edit',669,670),
30+
(342,338,NULL,NULL,'delete',671,672),
31+
(343,2,NULL,NULL,'Lti',673,674),
32+
(344,343,NULL,NULL,'roster',675,676);
33+
34+
INSERT INTO `aros_acos` (id, aro_id, aco_id, _create, _read, _update, _delete) VALUES
35+
(NULL,1,338,'1','1','1','1'),
36+
(NULL,2,344,'1','1','1','1'),
37+
(NULL,3,344,'1','1','1','1'),
38+
(NULL,4,344,'-1','-1','-1','-1'),
39+
(NULL,5,344,'-1','-1','-1','-1');
40+
41+
DROP TABLE IF EXISTS `lti_nonces`;
42+
CREATE TABLE `lti_nonces` (
43+
`id` int(11) NOT NULL AUTO_INCREMENT,
44+
`nonce` varchar(255) NOT NULL,
45+
PRIMARY KEY (`id`),
46+
UNIQUE KEY `nonce` (`nonce`)
47+
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
48+
49+
DROP TABLE IF EXISTS `lti_contexts`;
50+
CREATE TABLE `lti_contexts` (
51+
`id` int(11) NOT NULL AUTO_INCREMENT,
52+
`lti_tool_registration_id` int(11) NOT NULL,
53+
`context_id` varchar(255) NOT NULL,
54+
`course_id` int(11) DEFAULT NULL,
55+
`nrps_context_memberships_url` varchar(255) DEFAULT NULL,
56+
PRIMARY KEY (`id`),
57+
FOREIGN KEY (`lti_tool_registration_id`) REFERENCES `lti_tool_registrations` (`id`) ON DELETE CASCADE,
58+
FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
59+
UNIQUE KEY `lti_tool_registration_id_context_id` (`lti_tool_registration_id`,`context_id`)
60+
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
61+
62+
DROP TABLE IF EXISTS `lti_resource_links`;
63+
CREATE TABLE `lti_resource_links` (
64+
`id` int(11) NOT NULL AUTO_INCREMENT,
65+
`lti_context_id` int(11) NOT NULL,
66+
`resource_link_id` varchar(255) NOT NULL,
67+
`event_id` int(11) DEFAULT NULL,
68+
`lineitems_url` varchar(255) DEFAULT NULL,
69+
`lineitem_url` varchar(255) DEFAULT NULL,
70+
`scope_lineitem` INT(1) DEFAULT '0',
71+
`scope_lineitem_read_only` INT(1) DEFAULT '0',
72+
`scope_result_readonly` INT(1) DEFAULT '0',
73+
`scope_result_score` INT(1) DEFAULT '0',
74+
PRIMARY KEY (`id`),
75+
FOREIGN KEY (`lti_context_id`) REFERENCES `lti_contexts` (`id`) ON DELETE CASCADE,
76+
FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE CASCADE,
77+
UNIQUE KEY `lti_context_id_resource_link_id` (`lti_context_id`,`resource_link_id`)
78+
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
79+
80+
81+
DROP TABLE IF EXISTS `lti_users`;
82+
CREATE TABLE `lti_users` (
83+
`id` int(11) NOT NULL AUTO_INCREMENT,
84+
`lti_tool_registration_id` int(11) NOT NULL,
85+
`lti_user_id` varchar(255) NOT NULL,
86+
`ipeer_user_id` int(11) DEFAULT NULL,
87+
PRIMARY KEY (`id`),
88+
FOREIGN KEY (`lti_tool_registration_id`) REFERENCES `lti_tool_registrations` (`id`) ON DELETE CASCADE,
89+
FOREIGN KEY (`ipeer_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
90+
UNIQUE KEY `lti_tool_registration_id_lti_user_id` (`lti_tool_registration_id`,`lti_user_id`)
91+
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

app/config/sql/ipeer.sql

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,10 @@ INSERT INTO acos (id, parent_id, model, foreign_key, alias, lft, rght) VALUES
369369
(331,300,NULL,NULL,'viewusername',660,661),
370370
(332,300,NULL,NULL,'submitstudenteval',662,663),
371371
(333,84,NULL,NULL,'export',193,194),
372-
(334,84,NULL,NULL,'import',195,196);
372+
(334,84,NULL,NULL,'import',195,196),
373+
(335,16,NULL,NULL,'syncCanvasEnrollment',NULL,NULL),
374+
(336,112,NULL,NULL,'syncCanvas',NULL,NULL),
375+
(337,64,NULL,NULL,'exportCanvas',NULL,NULL);
373376

374377
-- --------------------------------------------------------
375378

app/config/sql/ipeer_samples_data.sql

Lines changed: 128 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2220,8 +2220,6 @@ INSERT INTO user_tutors (id, user_id, course_id, creator_id, created, updater_id
22202220
(3, 37, 2, 0, NOW(), NULL, NOW()),
22212221
(4, 37, 3, 0, NOW(), NULL, NOW());
22222222

2223-
SET foreign_key_checks = 1;
2224-
22252223

22262224

22272225
------------------------
@@ -2268,7 +2266,7 @@ VALUES (
22682266
);
22692267

22702268
INSERT INTO `sys_parameters` (
2271-
`parameter_code`, `parameter_value`, `parameter_type`,
2269+
`parameter_code`, `parameter_value`, `parameter_type`,
22722270
`description`, `record_status`, `creator_id`, `created`,
22732271
`updater_id`, `modified`)
22742272
VALUES (
@@ -2277,7 +2275,7 @@ VALUES (
22772275
);
22782276

22792277
INSERT INTO `sys_parameters` (
2280-
`parameter_code`, `parameter_value`, `parameter_type`,
2278+
`parameter_code`, `parameter_value`, `parameter_type`,
22812279
`description`, `record_status`, `creator_id`, `created`,
22822280
`updater_id`, `modified`)
22832281
VALUES (
@@ -2311,6 +2309,7 @@ INSERT INTO `acos`
23112309
ALTER TABLE `courses` ADD COLUMN `canvas_id` VARCHAR(25) NULL DEFAULT NULL;
23122310

23132311
-- add table to store oauth access/refresh tokens and expiry timestamp of the access token
2312+
DROP TABLE IF EXISTS `user_oauths`;
23142313
CREATE TABLE IF NOT EXISTS `user_oauths` (
23152314
`id` int(11) NOT NULL AUTO_INCREMENT,
23162315
`user_id` int(11) NOT NULL DEFAULT '0',
@@ -2375,6 +2374,7 @@ ALTER TABLE `events` ADD COLUMN `canvas_assignment_id` VARCHAR(25) NULL DEFAULT
23752374

23762375
--- START: Added by DB upgrade to version 17
23772376
-- add table to store delayed jobs
2377+
DROP TABLE IF EXISTS `jobs`;
23782378
CREATE TABLE IF NOT EXISTS `jobs` (
23792379
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
23802380
`handler` TEXT NOT NULL,
@@ -2391,3 +2391,127 @@ CREATE TABLE IF NOT EXISTS `jobs` (
23912391
-- store course term
23922392
ALTER TABLE `courses` ADD COLUMN `term` VARCHAR(50) NULL DEFAULT NULL;
23932393
--- END: Added by DB upgrade to version 17
2394+
2395+
--- START: Added by DB upgrade to version 18
2396+
ALTER TABLE `courses` MODIFY `canvas_id` varchar(255) NULL DEFAULT NULL;
2397+
ALTER TABLE `courses` ADD INDEX `canvas_id` (`canvas_id`);
2398+
ALTER TABLE `users` DROP `lti_id`;
2399+
2400+
DROP TABLE IF EXISTS `lti_tool_registrations`;
2401+
CREATE TABLE `lti_tool_registrations` (
2402+
`id` int(11) NOT NULL AUTO_INCREMENT,
2403+
`iss` varchar(255) NOT NULL,
2404+
`client_id` varchar(255) NOT NULL,
2405+
`auth_login_url` varchar(255) NOT NULL,
2406+
`auth_token_url` varchar(255) NOT NULL,
2407+
`key_set_url` varchar(255) NOT NULL,
2408+
`tool_private_key` text NOT NULL,
2409+
`tool_public_key` text NOT NULL,
2410+
`user_identifier_field` varchar(255) DEFAULT NULL,
2411+
`student_number_field` varchar(255) DEFAULT NULL,
2412+
`term_field` varchar(255) DEFAULT NULL,
2413+
`canvas_id_field` varchar(255) DEFAULT NULL,
2414+
`faculty_name_field` varchar(255) DEFAULT NULL,
2415+
PRIMARY KEY (`id`),
2416+
UNIQUE KEY `iss` (`iss`),
2417+
KEY `client_id` (`client_id`)
2418+
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
2419+
2420+
--
2421+
-- Dumping data for table `lti_tool_registrations`
2422+
--
2423+
INSERT INTO `lti_tool_registrations` (`id`, `iss`, `client_id`, `auth_login_url`, `auth_token_url`, `key_set_url`, `tool_private_key`, `tool_public_key`, `user_identifier_field`, `student_number_field`, `term_field`, `canvas_id_field`, `faculty_name_field`) VALUES
2424+
(1, 'https://docker-canvas.instructure.com', '10000000000013', 'http://mock_lti.com/api/lti/authorize_redirect', 'http://mock_lti.com/login/oauth2/token', 'http://mock_lti.com/api/lti/security/jwks', '-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEApBK2zJCDg9s8QDeci6E4QWlTSGav3qh5edjbXULo5Mv0KxN7\nqLyC05QfRrs/I+P5a6D18S/ecAGYPH5xQKuPvqOEotPrRhHCkJB5PtLDsF4ZZbr/\nwWLWG5OYhCkY/H2Wip9rsx1GjKG73EMMTqT2p14K+GW4dg8/HbxQLA4yGeNnGr4D\nd87A+n9wUvMZYAxoCiHiSFD7x0hVIg/q4VXoWHBGEnnqCMC9Gtd7g7HZtQzbYMm4\nm2uY5JHhs+MXS8YKf6Ftc58sJHK5fMtjs9vMVOCkAlrEiEEn+tEHOjSNlzMg+P03\nUU79Lt/MDjXv3mtEPVmPjpJevT4Kjf1HxCSUNQIDAQABAoIBAF5Jmt9IFSwLKz7E\nNqRPS+LbQk8TI/JS4yxQoQ+hSfFh+7ldguzfGFe6gZbGOGzJsCZX475tAelgITpy\nd2bwsLSfh7ODEWu8/RDS1bpyqJ6MFRBPPHbH8775POaGL6O6EG8tWlkec9KRh0H3\nDfWL+2sHMkq5Oh4ueNj/xRrsNYKGLsD0bJMS9eFswDCpvL3fscu/JrrQT+CltBTJ\nj8lTHmGRIF9UOg0Ef1kEgOxcR+AZ2djP3d+zkKZxMATLKWnA1HRFPb7XpJQfjA+k\nsismB4FuhvTSN6IRaci1U5qASHUnIjbTMfFsqJ3h17RivQmSEz1r28OE1HyD/tdE\nIIy3WikCgYEAz6r27/MfEWXgOAwloKJAQi0sqa/0VkWQcNPN3jSgO+AN0iqPLSuj\nAlrLqlLcRlyYAfe7t6B/8SAklJtdy0x9uBaJXrmHhby4jeBksyycQULUzTUhGdbW\nGDfR+XbvNoGUaH1q+vIpglz2jw3N1/M6B/i16wd6Q81UO5WYxQj1j7sCgYEAykJW\nIq4A4UQmtM6gdsXXranV80NOlcH0p521Ec6wpU0dxfI+qVVbT4FxqxfB9Pq5N4V0\nreEYN1ALbjLi3fvChbx8P+lg6k/Tuhn7oiH3kado8iUUR00KyRwWeaMbVwUzU9sQ\nUhB/XfR3J7l3inN/dAlfdSsYbnQJN2U88CKEVM8CgYBfM2UZAz+O3kE38HmfdkI3\nFDaRY9SDaEibML4Dy+RZDpHHczNH5eVIww7y+iF5MCGPZV5tA+sjQzUB22fYNyy7\nI7m97xetu6JviBsh+KV5VYXwvRZ7nf1wBMcBsgBf4G+Ep1pPyIw28x8k3ZMsGJjV\n5rKfGEJ4qryexCnQyhao2QKBgCel71qm/3cpM+k3pA8EY24gn9cq94m11q7Q5IDU\nIp6UymRWQ2BQYjDosA6Y/qV2TL6Mg73eJTAamdMFWKGpS42J0FV6+0uTUG7nzwMO\nY4iC57in+hysBpQ71FAN4DsjwtcKV12u7DjPxlfcLInQcEif2b2PMB/e0Tuxtcth\nCM3TAoGAM+z4u7mi5jxyW9teAYtx3Yb6RGeuly7XvlknV0Lwf2438P2HNZiOa4SE\nSXHZir6LWNv8HOdGapYxUlDfmeNneo4D9B8lBpVs/FsuQF1aOI6B299SlVLPmF+a\nl88qKzXKv7M1pcOv74GK1AIVDF8XJvt1PyaQX92M14q2Ga8Jdjk=\n-----END RSA PRIVATE KEY-----', '-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApBK2zJCDg9s8QDeci6E4\nQWlTSGav3qh5edjbXULo5Mv0KxN7qLyC05QfRrs/I+P5a6D18S/ecAGYPH5xQKuP\nvqOEotPrRhHCkJB5PtLDsF4ZZbr/wWLWG5OYhCkY/H2Wip9rsx1GjKG73EMMTqT2\np14K+GW4dg8/HbxQLA4yGeNnGr4Dd87A+n9wUvMZYAxoCiHiSFD7x0hVIg/q4VXo\nWHBGEnnqCMC9Gtd7g7HZtQzbYMm4m2uY5JHhs+MXS8YKf6Ftc58sJHK5fMtjs9vM\nVOCkAlrEiEEn+tEHOjSNlzMg+P03UU79Lt/MDjXv3mtEPVmPjpJevT4Kjf1HxCSU\nNQIDAQAB\n-----END PUBLIC KEY-----', 'https://purl.imsglobal.org/spec/lti/claim/custom|username', 'https://purl.imsglobal.org/spec/lti/claim/custom|student_number', 'https://purl.imsglobal.org/spec/lti/claim/custom|term_name', 'https://purl.imsglobal.org/spec/lti/claim/custom|canvas_course_id', 'https://purl.imsglobal.org/spec/lti/claim/custom|account_name');
2425+
2426+
INSERT INTO `acos` (id, parent_id, model, foreign_key, alias, lft, rght) VALUES
2427+
(338,2,NULL,NULL,'Ltitoolregistrations',664,673),
2428+
(339,338,NULL,NULL,'index',665,666),
2429+
(340,338,NULL,NULL,'add',667,668),
2430+
(341,338,NULL,NULL,'edit',669,670),
2431+
(342,338,NULL,NULL,'delete',671,672),
2432+
(343,2,NULL,NULL,'Lti',673,674),
2433+
(344,343,NULL,NULL,'roster',675,676);
2434+
2435+
INSERT INTO `aros_acos` (id, aro_id, aco_id, _create, _read, _update, _delete) VALUES
2436+
(NULL,1,338,'1','1','1','1'),
2437+
(NULL,2,344,'1','1','1','1'),
2438+
(NULL,3,344,'1','1','1','1'),
2439+
(NULL,4,344,'-1','-1','-1','-1'),
2440+
(NULL,5,344,'-1','-1','-1','-1');
2441+
2442+
DROP TABLE IF EXISTS `lti_nonces`;
2443+
CREATE TABLE `lti_nonces` (
2444+
`id` int(11) NOT NULL AUTO_INCREMENT,
2445+
`nonce` varchar(255) NOT NULL,
2446+
PRIMARY KEY (`id`),
2447+
UNIQUE KEY `nonce` (`nonce`)
2448+
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
2449+
2450+
DROP TABLE IF EXISTS `lti_contexts`;
2451+
CREATE TABLE `lti_contexts` (
2452+
`id` int(11) NOT NULL AUTO_INCREMENT,
2453+
`lti_tool_registration_id` int(11) NOT NULL,
2454+
`context_id` varchar(255) NOT NULL,
2455+
`course_id` int(11) DEFAULT NULL,
2456+
`nrps_context_memberships_url` varchar(255) DEFAULT NULL,
2457+
PRIMARY KEY (`id`),
2458+
FOREIGN KEY (`lti_tool_registration_id`) REFERENCES `lti_tool_registrations` (`id`) ON DELETE CASCADE,
2459+
FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
2460+
UNIQUE KEY `lti_tool_registration_id_context_id` (`lti_tool_registration_id`,`context_id`)
2461+
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
2462+
2463+
--
2464+
-- Dumping data for table `lti_contexts`
2465+
--
2466+
INSERT INTO `lti_contexts` (`id`, `lti_tool_registration_id`, `context_id`, `course_id`, `nrps_context_memberships_url`) VALUES
2467+
(1, 1, 'mock_lti_context_id', 1, 'http://mock_lti.com/api/lti/courses/13/names_and_roles');
2468+
2469+
2470+
DROP TABLE IF EXISTS `lti_resource_links`;
2471+
CREATE TABLE `lti_resource_links` (
2472+
`id` int(11) NOT NULL AUTO_INCREMENT,
2473+
`lti_context_id` int(11) NOT NULL,
2474+
`resource_link_id` varchar(255) NOT NULL,
2475+
`event_id` int(11) DEFAULT NULL,
2476+
`lineitems_url` varchar(255) DEFAULT NULL,
2477+
`lineitem_url` varchar(255) DEFAULT NULL,
2478+
`scope_lineitem` INT(1) DEFAULT '0',
2479+
`scope_lineitem_read_only` INT(1) DEFAULT '0',
2480+
`scope_result_readonly` INT(1) DEFAULT '0',
2481+
`scope_result_score` INT(1) DEFAULT '0',
2482+
PRIMARY KEY (`id`),
2483+
FOREIGN KEY (`lti_context_id`) REFERENCES `lti_contexts` (`id`) ON DELETE CASCADE,
2484+
FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE CASCADE,
2485+
UNIQUE KEY `lti_context_id_resource_link_id` (`lti_context_id`,`resource_link_id`)
2486+
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
2487+
2488+
--
2489+
-- Dumping data for table `lti_resource_links`
2490+
--
2491+
INSERT INTO `lti_resource_links` (`id`, `lti_context_id`, `resource_link_id`, `event_id`, `lineitems_url`, `lineitem_url`, `scope_lineitem`, `scope_lineitem_read_only`, `scope_result_readonly`, `scope_result_score`) VALUES
2492+
(1, 1, 'mock_lti_resource_id', null, 'http://mock_lti.com/api/lti/courses/13/line_items', null, 1, 1, 0, 1),
2493+
(2, 1, 'mock_lti_context_id', null, 'http://mock_lti.com/api/lti/courses/13/line_items', null, 1, 1, 0, 1);
2494+
2495+
DROP TABLE IF EXISTS `lti_users`;
2496+
CREATE TABLE `lti_users` (
2497+
`id` int(11) NOT NULL AUTO_INCREMENT,
2498+
`lti_tool_registration_id` int(11) NOT NULL,
2499+
`lti_user_id` varchar(255) NOT NULL,
2500+
`ipeer_user_id` int(11) DEFAULT NULL,
2501+
PRIMARY KEY (`id`),
2502+
FOREIGN KEY (`lti_tool_registration_id`) REFERENCES `lti_tool_registrations` (`id`) ON DELETE CASCADE,
2503+
FOREIGN KEY (`ipeer_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
2504+
UNIQUE KEY `lti_tool_registration_id_lti_user_id` (`lti_tool_registration_id`,`lti_user_id`)
2505+
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
2506+
--- END: Added by DB upgrade to version 18
2507+
2508+
2509+
--
2510+
-- Dumping data for table `lti_users`
2511+
--
2512+
INSERT INTO `lti_users` (`id`, `lti_tool_registration_id`, `lti_user_id`, `ipeer_user_id`) VALUES
2513+
(1, 1, 'mock_lti_user_id_instructor', 2);
2514+
2515+
2516+
2517+
SET foreign_key_checks = 1;

0 commit comments

Comments
 (0)