fixes PLAT-1940
test plan:
create a grade passback with the timestamp between
0 and 60 seconds in the future.
it should not be rejected
create a grade passback with the timestamp more then 60 seconds in
the future
it should be rejected
Change-Id: Ica50c433efa0b7303a4031ab13f6edfebd5c73cd
Reviewed-on: https://gerrit.instructure.com/94251
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Product-Review: Karl Lloyd <karl@instructure.com>
order was undefined, leading to a flaky spec and possibly inconsistent
data from one API call to the next
also reduce spec runtime 75% w/ a little :once-ing
test plan:
specs
Change-Id: I1b422e1a65d2ed9cec68617ab32e2e9c8c378d01
Reviewed-on: https://gerrit.instructure.com/92861
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
fixes PLAT-1349
test plan:
regression check grade passback
try using the same nonce twice for grade passback
try using an expired oauth signature
Change-Id: I76ca22568451823c0ed9ae03e815873dda843883
Reviewed-on: https://gerrit.instructure.com/90006
Tested-by: Jenkins
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
Fixes#880 Github issue
fixes PLAT-1770
test plan:
add a tool installed at the account level with the
"Canvas.externalTool.url" variable expansion
the substituted value should be the tools context not the launch
context i.e. if the tool is launched from a course below the
account it is installed on it should be a url for the account.
also the returned url should be the correct api endpoint for the
tool
Change-Id: Ibb166240c96fb01b31bc2d5055b67f16e107878c
Reviewed-on: https://gerrit.instructure.com/88539
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
should improve state_based_on_date performance
refs #CNVS-29460
Change-Id: Iaffdefd5280b3d3c360cd96b99e171b9c2b3f63e
Reviewed-on: https://gerrit.instructure.com/86977
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
fixes PLAT-1203
test plan:
create navigation settings for user, course and account placements
include in those placements
"<lticm:property name="windowTarget">_blank</lticm:property>"
launch from each of those placments
it should open in a new tab or window depending on your browser settings
double check that you can embed an rce lti link using
Content-Item that open in a new tab
Change-Id: I987ebf1b5aa4c43f616b0a5fe2ed5e5d648c2d44
Reviewed-on: https://gerrit.instructure.com/86158
Tested-by: Jenkins
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
the new gem created an lti message authenticator that fixes a bug
around content-item-selection message signature validation.
fixes PLAT-1639
test plan:
the test tool content item edit should still work
the o365 content-item edit should work with it
Change-Id: I5ebe868b31518861d32bf1b02244c21cceb55eb6
Reviewed-on: https://gerrit.instructure.com/84481
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
was performing an unnecessary added join for course contexts
that joined on _all_ user enrollments
closes #CNVS-30331
Change-Id: Ia0c40002aa8c963289bb00833d7719def0609d46
Reviewed-on: https://gerrit.instructure.com/84445
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
fixes PLAT-1621
Test plan:
* Install a tool with collaboration placement and
$Canvas.api.collaborationMembers.url custom variable
* Ensure that the variable is substituted for the collaboration update
launch but not for collaboration create or show
Change-Id: I5826ed51d4d4a6a1099cb8077cd9748333e7417e
Reviewed-on: https://gerrit.instructure.com/83544
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Andrew Butterfield <abutterfield@instructure.com>
Refs CNVS-30048
Test Plan:
- Pretty much good
Change-Id: Ia3b93b987b84b233c33891011db7995cae07c8b5
Reviewed-on: https://gerrit.instructure.com/83140
Tested-by: Jenkins
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: Michael Hargiss <mhargiss@instructure.com>
Product-Review: Chris Wang <cwang@instructure.com>
Aids us in Quizzes 2.0 to make it easier to show context to teachers
Closes CNVS-30048
Change-Id: I8f551c98fff3bdc3c753d4e72bf91ad5971fcc63
Reviewed-on: https://gerrit.instructure.com/82740
Tested-by: Jenkins
Reviewed-by: Chris Wang <cwang@instructure.com>
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
QA-Review: Michael Hargiss <mhargiss@instructure.com>
Product-Review: Chris Wang <cwang@instructure.com>
fixes PLAT-1606
Test plan:
* Create some groups in a course and add a user to them
* Install a tool that has a collaboration and course navigation
placement
* Include the following custom variable in the xml config
user_group_ids=$Canvas.user.courseGroupOpaqueIds
* Ensure that on launches where the context is a course the variable is
properly expanded to include a list of context ids for the groups the
user launching is a part of in the course
* The variable substitution for membership service changed to
$ToolProxyBinding.memberships.url
* Ensure that the membership service variable expansion still works in
both the group and course context
Change-Id: I31a2a56e8d3b0c528f2cebe82c63148afdc80722
Reviewed-on: https://gerrit.instructure.com/82633
Tested-by: Jenkins
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Andrew Butterfield <abutterfield@instructure.com>
refs PLAT-1571
test plan:
lti 1 launches shouldn't include the tool_consumer_profile_url
lti 2 launches should still include it
Change-Id: I72dd2d1eff13e015510c8c20bc73ab9ab961f561
Reviewed-on: https://gerrit.instructure.com/81862
Tested-by: Jenkins
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
refs PLAT-1571
test plan:
regression test api/and UI for create and update tools
specifically around custom parameters
create a tool using something complex like this:
Complex!@#$^*(){}[]KEY=Complex!@#$^*;(){}[]½Value
it should get stored and returned correctly, i.e.
name = Complex!@#$^*(){}[]KEY
value = Complex!@#$^*;(){}[]½Value
Change-Id: I4a44575bdec9b83925bbe21d78b5d06770b7768e
Reviewed-on: https://gerrit.instructure.com/81863
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
fixes PLAT-1563
Test plan:
* Previously the group endpoint for the membership service
returned roles based on the course context
* Ensure that now the roles returned for the group endpoint of the
membership service include only urns for Manager and/or Member.
* Ensure that the Manager urn is included for the student leader of the
group
* Previously the course endpoint for the membership service returned
roles for the user that applied to all courses that member was a part
of in canvas.
* In one course enroll a user as a teacher. In another course enroll the
same user as a student
* Ensure that for each course the membership service returns only the
roles that apply to that user within the context of that course
Change-Id: I7527d3384c79c54efd5140bcae0c1b988a926410
Reviewed-on: https://gerrit.instructure.com/82279
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Andrew Butterfield <abutterfield@instructure.com>
Fixes PLAT-1448 PLAT-1449
Test plan:
* Create a user and generate an access token for the user
* Add a bunch of groups to a course
* Access the following endpoint for a course the user is enrolled in
/api/lti/courses/:course_id/membership_service?role=urn%3Alti%3Acontext-type%3Aims%2Flis%2FGroup
* Ensure that course groups are returned
Change-Id: I793768ab7dc2e0cde8df72370fdbe6ea92e02b5e
Reviewed-on: https://gerrit.instructure.com/81022
Tested-by: Jenkins
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Andrew Butterfield <abutterfield@instructure.com>
this is the first step in refactoring out the security code from
the lti_outband gem
refs PLAT-1570
test-plan
LTI launches should still work the same as they did before
Change-Id: I6d991ed3a18e9dfcfeb68f48c8b1490ff75c2370
Reviewed-on: https://gerrit.instructure.com/81448
Tested-by: Jenkins
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Product-Review: Andrew Butterfield <abutterfield@instructure.com>
QA-Review: Andrew Butterfield <abutterfield@instructure.com>
fixes CNVS-28799
test plan:
- commons share links should still work
- try generating an invalid share link (with ids that don't exist)
- it should give an appropriate error
- basic lti launches and api lti launches should still work
Change-Id: I6731f4a578b3075507e4052874f7e5d38f470892
Reviewed-on: https://gerrit.instructure.com/77393
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: Benjamin Christian Nelson <bcnelson@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
refs PLAT-1339
test-plan:
specs should pass
nothing uses this right now, just here for future use
Change-Id: Ie07227c5cdaa64201ff38208840d79668508dde8
Reviewed-on: https://gerrit.instructure.com/79137
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
Fixes PLAT-1498
Test Plan:
With the test tool, create a new assignment with
100 points possible. The value posted to the tool
for the points_possible variable expansion should
be "100" not "100.0". A assignment with 100.5 points
possible should post as "100.5".
Change-Id: I5eaf29817a7a71626f1407cda4c75a3853c816d3
Reviewed-on: https://gerrit.instructure.com/79297
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Brad Humphrey <brad@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Karl Lloyd <karl@instructure.com>
fixes PLAT-1450
Test plan:
* Using the test tool https://lti-tool-provider-example.herokuapp.com/
set up some XML for a tool that has a 'collaboration' placement and
custom variable with the following variable substitution
$Canvas.api.membershipServiceUrl
* Ensure that on a course collaboration launch the membership service
url is of the following form
/api/lti/courses/:course_id/membership_service
* Ensure that on an account group collaboration or course group
collaboration launch the membership service url is of the following
form
/api/lti/groups/:group_id/membership_service
Change-Id: I38ce63ba0d95a12963e99251c2abf660573e9c7b
Reviewed-on: https://gerrit.instructure.com/78276
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Andrew Butterfield <abutterfield@instructure.com>
Generate LTI Variable Substitution Docs from the code
Uses YARD's plugin hooks to generate the markdown.
I couldn't find a good way to do this with YARDs builtin generation
stuff. So I hacked together. No pretty, but gets the job done.
You can update the generated markdown by running this
```
script/generate_lti_variable_subustition_markdown
```
Our yard templates, dont process markdown files like YARD is supposed
to.i Not sure why? 🤷
Fixes https://github.com/instructure/canvas-lms/issues/592
Change-Id: If0728d357dc745d81381e818ed62d087d76f0e66
Reviewed-on: https://gerrit.instructure.com/74312
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
fixes PLAT-1447
Test plan:
* Create a course with some students
* Regression test
/api/lti/courses/:course_id/membership_service
* Create a group with some students
* Ensure that
/api/lti/groups/:group_id/membership_service
returns a properly formatted list of group members
Change-Id: Idc03c11728847258d621d365d87238465f739672
Reviewed-on: https://gerrit.instructure.com/77595
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Andrew Butterfield <abutterfield@instructure.com>
closes #CNVS-28714
Change-Id: I9899f288f59850615230fdd15b254da5d5216f1b
Reviewed-on: https://gerrit.instructure.com/77140
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
fixes PLAT-1387
Test plan:
* Using the lti test tool create a tool that can launch from an account
context and a course context
* Add a custom param with the following key: value pair
$Canvas.api.membershipServiceUrl
* Ensure that in the course context the variable substitution occurs but
that in the account context it does not.
Change-Id: If2bf3b2c1b91229021b8d0f8cf3e7b83366eafcf
Reviewed-on: https://gerrit.instructure.com/75907
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Tested-by: Jenkins
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Andrew Butterfield <abutterfield@instructure.com>
fixes PLAT-1342
Test plan:
n/a
Implements a lib that doesn't have a user facing effect yet
Change-Id: Ifff8bbe804a13868f9ebaec46877f78f72b72631
Reviewed-on: https://gerrit.instructure.com/73338
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Tested-by: Jenkins
Product-Review: Andrew Butterfield <abutterfield@instructure.com>
fixes: PLAT-1336
test plan:
it should still create collaborations via content-item
we need to enhance the test tool to verify that callbacks happen
Change-Id: I2854c93adb0eec64f4dcae1c7a74b3cc72c94b90
Reviewed-on: https://gerrit.instructure.com/72610
Tested-by: Jenkins
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
refs CNVS-26735
test plan:
* create a user, pseudonym, and update a pseudonym via API
setting integration_id
* it should work
* with a user with an integration id set, launch an LTI tool
with the Canvas.user.sisIntegrationId variable being sent;
ensure it gets sent
Change-Id: I549ba6e64e993c4867acfe33577722c1118b8988
Reviewed-on: https://gerrit.instructure.com/70874
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
Reviewed-by: Brad Humphrey <brad@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
refs #CNVS-26056
Change-Id: Ia94ee2fcfded1ec66cb77a19085b005c81304800
Reviewed-on: https://gerrit.instructure.com/70251
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
add support for reregistration launches
Allow tool providers to send updated tool proxies
Saves the payload and acknowledgment url in the update_payload field
Show an update indicator, and options to update or dismiss the update
basic UI functionality
fixes: PLAT-1247
Fixes PLAT-1276
Fixes PLAT-1248
Test Plans:
using the test tool you should be able to install it,
then from the gear context menu you should be able to do a reregistration
launch the tool and canvas only support the launch right now, and not the
rest of the process
Populate update payload on a tool proxy (LTI2 tool)
make sure a badge is displayed indicating there is an update available
make sure you the options to update or dismiss are displayed
make sure when you update it actually updates, and no longer shows an
update is available
make sure when you dismiss it no longer show an update
Change-Id: I93e2db40f81523e9518e529460ea2b16f5de103a
Reviewed-on: https://gerrit.instructure.com/68004
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Tested-by: Jenkins
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
test plan:
* have a teacher who is also an observer for a course
* should be able to add external tools as modules
closes #CNVS-24785
Change-Id: I76f795593597fb50cb86b685d3bb04c50cc2c737
Reviewed-on: https://gerrit.instructure.com/66682
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Ryan Allen <rallen@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
* install a post grades lti 2 tool
* the post grades placement should be shown for the tool
* the tool should be shown on the gradebook page for posting grades
fixes SKYW-106
Change-Id: I25f26c09017d8967799b3692a2aeb15986a4c322
Reviewed-on: https://gerrit.instructure.com/57576
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Tested-by: Jenkins
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Mark Severson <markse@instructure.com>
refs: PLAT-1247
test plan:
the feature flag for reregistration should only show for site admins
at the root account level
the api for api/v1/#{context}s/:#{context}_id/lti_apps should have
reregistraation equal true for lti2 tools when the feature flag is enabled
Change-Id: I6a4c2f1deaa4ef8a2448dde374b93b79289ab96c
Reviewed-on: https://gerrit.instructure.com/65739
Tested-by: Jenkins
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
fixes PLAT-1275
test plan:
request the `Canvas.user.globalId` custom variable expansion
you should get back a global id for the user
Change-Id: I5b34e0f266519b0cad9e5dbdf9ac206f9eab08ee
Reviewed-on: https://gerrit.instructure.com/65578
Tested-by: Jenkins
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
fixes PLAT-1272
test plan:
use the $Canvas.assignment.(dueAt|lockAt|unlockAt).iso8601
varaible expansions
set up an assignment with blank values for all the dates
you should not get a 500 on an lti launch for the assignment
Change-Id: I7e4ffab74ea8b2aef6ba921c372ada9260805da0
Reviewed-on: https://gerrit.instructure.com/65354
Tested-by: Jenkins
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
fixes PLAT-1189
test-plan:
Before you cherry pick do a bunch of launches and record the resource_link_id, and the context_id
cherry pick this commit
do the exact same launches and make sure the resource_link_id, and context_id did not change between this code change
Change-Id: I0852cf19e62fc4b662cd71e0497004bcf8e440d0
Reviewed-on: https://gerrit.instructure.com/63008
Tested-by: Jenkins
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
Canvas.assignment.unlockAt.iso8601 Canvas.assignment.lockAt.iso8601 Canvas.assignment.dueAt.iso8601
fixes PLAT-1211
test-plan:
install the test tool with Canvas.assignment.unlockAt.iso8601 Canvas.assignment.lockAt.iso8601 Canvas.assignment.dueAt.iso8601 setup as a custom variable
launch the tool
it should return back the above date varibles in iso8601 format.
Change-Id: I6a816e8318cb70d50a0cf39f2138f4e395f39676
Reviewed-on: https://gerrit.instructure.com/61806
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Josh Orr <jgorr@instructure.com>
fixes PLAT-1174
Test Plan
~ make sure resource_handler_id from the lti_resource_placements table
~ make sure installing a tool via lti tool registration URL works correctly as
well as any other task that uses the Lti::ResourcePlacement model.
Change-Id: I058ae01cb43366342754e3fa9cdabf1c408cce0e
Reviewed-on: https://gerrit.instructure.com/60494
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
Fixes PLAT-1184
Test Plan
- Install the test tool at the account level with the account navigation and course navigation placements
- Once installed edit the app and add the custom field 'role_test=$Canvas.membership.roles'
- launch the app from the account navigation and make sure the variable was expanded
- launch the app from the course navigation and make sure the variable was expanded
Change-Id: I840c537de5ec1fa8fc1f1f94d2b8beef1aed2abb
Reviewed-on: https://gerrit.instructure.com/59859
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
For the Canvas Data product, we have an LTI app that we use to give customers access
to a flat file download or manage credentials for accessing a Redshift
database.
Since this is basically a huge amount of access, we want to be double
extra sure that we are properly linking up accounts with the canvas data
portal and only giving authorized users access.
For the LTI app, we are currently using per account oauth keys/secrets
and user whitelisting to ensure that only authorized users can access
the data. However, we currently have a gap where if a shard_id (which we
need for driving the ETL process) is not entered correctly, we would
process data for the wrong customer. With the shard_id being passed
by the LTI app, we can at least ensure that this data can't be accessed
by not allowing authentication if we are passed a shard_id we don't
expect.
This commit adds an expansion for the globalized account_id (which we
may use later) and the shard_id.
Test Plan:
- Create an LTI app that expands $Canvas.root_account.global_id and $Canvas.shard
- Ensure that the globalized root_account_id and shard_id are passed
Change-Id: I5315320c4920e258032a08f424b9a83a6f7a8744
Reviewed-on: https://gerrit.instructure.com/59895
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Addison Higham <ahigham@instructure.com>
Fixes PLAT-1160
Test Plan:
- Install a test tool at the account level and give it a variety placements.
- Navigate to a course within the account you just installed the tool in.
- go to settings -> apps and look at the app configurations.
- make sure the account level tool has a button that allows a user to view placements.
- make sure the list of placements given for the account level tool is correct.
Change-Id: I306290d593e59d80dcd34ff7550388508694c141
Reviewed-on: https://gerrit.instructure.com/59040
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Fixes PLAT-1125
Test Plan
- Add the example test tool (https://github.com/rivernate/lti_tool_provider_example)
to a course using Editor Button, Link Selection, and Module Menu placements.
- Add the tool as a module item. While adding make sure to add a new content item by pressing the green '+' in the modal that pops up.
This content-item should 'Lti Link' set as the type.
- Click on the tool module item and make sure the link works.
- Using similar steps add the tool in the RCE and make sure the link works as expected.
Change-Id: I91681d6b6937467ef1aadf3029ccbfd566ba3a71
Reviewed-on: https://gerrit.instructure.com/57296
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
Tested-by: Jenkins
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
fixes CNVS-21837
Test plan:
* Set up sis_app
* If you don't have it already, clone sis_app from gerrit
* Then pull down g/58166
* Run bundle, rake db:migrate, grunt webpack:build
* Start the server with rails s -p 9292
* Create a Skyward Agent if you haven't already (there are a lot of
steps with this so just ping me if you have trouble)
* Canvas
* Delete any existing Skyward GPB LTI tool you have installed
* Reinstall the Skyward GPB tool
* Verifications
* Go to post grades
* Open up the javascript console in the browser
* Monitor network traffic
* Click the Skyward LTI tool in the Post Grades
drop down menu
* In the network traffic look for /post_grades
* Click on that request and look through the form data sent with the
post request
* Ensure that there is a url to the common.css stylesheet under the
key: custom_common_css_url
* Verify that the url listed under that key matches the url for the
common.css stylesheet in the Canvas grades page
Change-Id: I48e0aa74d498770513bcfa08f95537b922096b05
Reviewed-on: https://gerrit.instructure.com/58167
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
Reviewed-by: Brad Humphrey <brad@instructure.com>
Product-Review: Brad Humphrey <brad@instructure.com>
QA-Review: Ben Bolton <bbolton@instructure.com>
Product-Review: Matthew Wheeler <mwheeler@instructure.com>
Fixes PLAT-1116
Test Plan
- Add a tool to a course that has the 'Assignment Selection' placement enabled
- Edit the tool and in the 'custom fields' area add 'module_id=$Canvas.module.id' and 'module_item_id=$Canvas.moduleItem.id'
- Create a new assignment with 'Submission Type' set to 'External Tool' and select the tool you just installed.
- Go to the course modules page and add the new assignment to a module.
- note the id of the module and the moduleItem (The module item id is passed as a get param when you click on the link).
- Make sure the custom fields (module_id and module_item_id) have the expected values
Change-Id: Ibc6c6342cf3493b8c81382f460c1af3a365130c0
Reviewed-on: https://gerrit.instructure.com/57235
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
refs #CNVS-21596
Change-Id: I8c11fdfc52566e9a5286d4ac53c66a6ac4ced32c
Reviewed-on: https://gerrit.instructure.com/57950
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Fixes PLAT-1117
Test Plan:
- Check https://instructure.atlassian.net/browse/PLAT-1117 for details on how this change should work
- Check to make sure each of the following placements works like the description of PLAT-1117 outines
- user_navigation
- course_navigation
- account_navigation
- course_home_sub_navigation
- course_settings_sub_navigation
- global_navigation
- assignment_menu
- file_menu
- discussion_topic_menu
- module_menu
- quiz_menu
- wiki_page_menu
- migration_selection
- link_selection
- assignment_selectino
- editor_button
Change-Id: Ib56d4c8c386975dcb86d79267cf2e69949146066
Reviewed-on: https://gerrit.instructure.com/56467
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>