closes gh-748
remove method that's now in the gem, and be more intelligent about adding
methods waiting pull requests
Change-Id: Ia304eca9cd53d1981e890de5dcb7e48fb2d4c460
Reviewed-on: https://gerrit.instructure.com/71140
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Google drive relevant code has been moved to the gems/google_drive
Actually test google drive with mocked api responses
cleaned up lots of code
Fixes PLAT-1301
Test Plan:
*** You'll need to use 2 separate google accounts to fully test ***
** Its helpful to have multiple chrome profiles so you dont have to log in and
** out a bunch https://support.google.com/chrome/answer/2364824?hl=en
BEFORE SWITCHING TO THIS PATCH SET
- Make sure you have some google doc collaborations
- Directions for creating one are below
- Disable your google docs plugin
Switch to the patch set
Enable google drive. (if not already)
- You should be able to paste in a client_secrets.json
- Update Redirect URI to point to your local instance (The URI should exist in the JSON)
As an admin/teacher
- Goto `profile/settings` and add the google drive user service
- Your email should be displayed with the service
- Goto Collaborations
- Make sure existing collaborations still work
- Click "Start new collaboration"
- give it a nice name (Created by admin)
- select your student
- click start collaborating
- You should be redirected to the new doc in google
- create another collaboration without the student (Created by admin, no users)
- Create an assignment with
Submission Type: Online
Online Entry Options: File Uploads
- Make sure your student has access to the course/assignment
- Goto Account settings -> Users
- Click View User Groups in the top right
- create a new group set with a group in it
- add yourself and your student to the group
- Goto the Group's Collaborations (Courses & Groups -> [group name] -> Collaborations)
- Click "Start new collaboration"
- give it a nice name (Created by admin for group)
- select your student
- click start collaborating
- You should be redirected to the new doc in google
As a student
- Goto `profile/settings` and add the google drive user service
- Your email should be displayed with the service
- Goto the assignment
- Submit the assignment
- You should have a "Google Doc" tab
- Choose a document and submit it
- After it submitted, click download on the right side
just to make sure its correct
- Goto Collaborations
- Make sure existing collaborations still work
- make sure the "created by admin" collaboration works
- make sure you can't see "Created by admin, no users"
- Click "Start new collaboration"
- give it a nice name (created by a student)
- click start collaborating
- You should be redirected to the new doc in google
- Switch to your admin/teacher and make sure they can't access it
- Edit the collaboration add the teacher, click Save
- Switch to your admin/teacher and make sure they can access it
- Goto `profile/settings` and REMOVE the google drive user service
- Go back to collaborations
- You should be forced to add the google service in order to use a collaboration
- Goto the Group's Collaborations (Courses & Groups -> [group name] -> Collaborations)
- Make sure you can access "Created by admin for group"
- Click "Start new collaboration"
- select your admin/teacher
- click start collaborating
- You should be redirected to the new doc in google
- make sure your admin can access it to
As a site admin
- Disable Google Drive
- Then with your student
- Make sure you can still do file upload submissions on the assignment
- Collaborations should no longer show up (unless you have etherpad enabled)
- Google drive should no longer show up in your profile settings as a registered service
Change-Id: I4dfaff6f5262743c044aadd12266fd0bd85a60e1
Reviewed-on: https://gerrit.instructure.com/69078
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
test plan:
* test all the things!
Change-Id: I1ecd36be4165fbbce84132a26d0e47db6d1aa31d
Reviewed-on: https://gerrit.instructure.com/71073
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
refs #CNVS-26056
Change-Id: I3f60457ffc2ea1e2676da583903418513cc00634
Reviewed-on: https://gerrit.instructure.com/70843
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
closes CNVS-26745
We were already passing it as a tag, but sentry now has a native release
field that provides additional functionality, so pass it there as well.
We'll keep the tag because it's still nice for searching.
Change-Id: I5447ecabf3cc7246ebc36abd05829320d8d449a7
Reviewed-on: https://gerrit.instructure.com/70889
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
refs CNVS-26368
the latest switchman version handles connection
disruptions during the re-caching of the default
shard gracefully
TEST PLAN:
1) no behavior should change
2) load up a sharded app
3) force a db exception just as "establish_connection" is
being called for database reconnection after a process
fork
4) the "Shard.default" method should return the
previously cached default shard, not the
DefaultShard.instance
Change-Id: I04c4905a8b2c662473e7e55a38d0b7b2987e343b
Reviewed-on: https://gerrit.instructure.com/70757
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Tested-by: Ethan Vizitei <evizitei@instructure.com>
refs #CNVS-26056
Change-Id: I1ad89e2d9922e9994937963b0ad783eccebc5bc5
Reviewed-on: https://gerrit.instructure.com/70759
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 index_exists?, add_index, remove_index, and
add_foreign_key method calls in migrations
unhacks remove_index to fail silently if the index
doesn't exist (and removes some unnecessary remove_index calls)
also fixes migration specs for rails 4.2
refs #CNVS-26056
Change-Id: Id878aa4cb871fc5ae6d0d4e7c6e8cfe1c5d88d35
Reviewed-on: https://gerrit.instructure.com/70692
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@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>
so we can rip out an old monkeypatched bugfix
Change-Id: Idbad934ac0f1e96a3e5e4883fc6b6fd92642756a
Reviewed-on: https://gerrit.instructure.com/70154
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
see https://bugs.ruby-lang.org/issues/11884
it's already fixed on ruby master, we just have to wait for the next
release
Change-Id: Icad61ebbd2ae86a36e7bd594ba2276c364c03ef1
Reviewed-on: https://gerrit.instructure.com/70153
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
we don't use its helper anymore
also relax bundler requirement, since no gems require asking for
platform ruby_23 anymore
Change-Id: Ia4cb9466363325f7d006307d4487df3b2269eaa3
Reviewed-on: https://gerrit.instructure.com/70100
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
native event/no_focus stuff is buggy (which is why it's normally not
enabled by default), so let's try a different approach...
ensure each runner has its own framebuffer (and thus its firefox should
run in the foreground). additionally, ensure the viewport has focus when
specs start so that blur/focus events fire normally.
this ensures that specs like spec/selenium/wiki_pages_spec.rb:429 pass when
run on jenkins without following another alert-accepting spec (like
spec/selenium/wiki_pages_spec:422).
test plan:
* full selenium build should pass on this commit, faster and w/ fewer
reruns
* non-testbot test-queue selenium build should pass on dependent commit
(running spec/selenium/wiki_pages_spec.rb w/ 5 runners concurrently)
Change-Id: Ic1bd09ab3ca8f483611201198025cdf4858d51dc
Reviewed-on: https://gerrit.instructure.com/69663
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
refs #CNVS-26056
Change-Id: I4a4d91c8f96a9d86646bdd14ba9ed75e365a9764
Reviewed-on: https://gerrit.instructure.com/69227
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
refs #CNVS-26056
Change-Id: I4819bbadd2ad20d573b172ce402329d7445107ce
Reviewed-on: https://gerrit.instructure.com/69523
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
test plan:
* smoke test webex and adobe connect conferences
Change-Id: I02fa2facdcd5245f9a3587fa3a492573ae9919f6
Reviewed-on: https://gerrit.instructure.com/68238
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Cody Cutrer <cody@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:
- in a console, do
Setting.set('content_migration_job_expiration_hours', -1)
- try to do course copies and course imports.
they should fail with "job expired" errors.
- go back to the console and undo the expire-migration-jobs-
-in-the-past setting with the following:
Setting.remove('content_migration_job_expiration_hours')
- now migration jobs should work again
fixes CNVS-25113
Change-Id: I2578c3e124276a950b73b4402f30625d8738a6c3
Reviewed-on: https://gerrit.instructure.com/68867
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
drop the instructure version - we lose the option of whitelisting
specific instances of tagged nodes, but that's easy to replicate
for the one case we care about
Change-Id: Ic95049f5917b4052a40ae37f147b355260f806b1
Reviewed-on: https://gerrit.instructure.com/68279
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
and fix extensions to Switchman::Shard to deal with it _not_ being
reloaded
Change-Id: Ia9c504594cf80c163eef3aa05b4580eb8c3a2013
Reviewed-on: https://gerrit.instructure.com/68811
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
refs CNVS-24816
create the feature flag and expose it in
the Eportfolios controller
Add a consul docker container to docker-compose.yml,
and a class for consuming settings in consul.
Also, add the ability to init config values
into consul from the consul.yml file
TEST PLAN:
1) edit your consul.yml to look kinda like this:
development:
host: consul
port: 8500
ssl: false
init_values:
rich-content-service:
app-host: rce.docker
cdn-host: rce.docker
2) go to edit an eportfolio as a logged in user
3) check in js console "ENV.RICH_CONTENT_SERVICE_ENABLED"
4) should be "true" or "false" depending on the feature
flag state for that user's root account
5) with the feature flag on, refresh and check the env
6) should have values in the env for
RICH_CONTENT_APP_HOST and RICH_CONTENT_CDN_HOST
Change-Id: Ic138e24416b2aadd965ce4811d3c56538de391bc
Reviewed-on: https://gerrit.instructure.com/66614
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
the zip-zip gem adds aliases from the rubyzip 0.9 names
(e.g. Zip::ZipFile) to the 1.0 names (e.g. Zip::File)
remove the last of the old names, and remove the gem
fixes CNVS-25247
Change-Id: I6b0c0427a1b4fa7f67a29f391043d018ddf1a551
Reviewed-on: https://gerrit.instructure.com/67660
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Expand object by default
Version 6.0.2 had the following problem:
https://github.com/deivid-rodriguez/byebug/issues/177
This means that in previous to this patch objects like [nil]
would print as blank lines in byebug.
Change-Id: I4ba20becd4e145dfa4f7d461dd380b72373a0898
Reviewed-on: https://gerrit.instructure.com/66724
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
also bumps switchman for similar error handling
refs CNVS-21900
Change-Id: I5c4f8d91bc5b6d3d0e6dc01ef3388fcc4d9b6c36
Reviewed-on: https://gerrit.instructure.com/65924
Tested-by: Jenkins
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
They now live in their own private repository.
Change-Id: Id4e9e3f745c1311fc75f99bb62333af44b90f145
Reviewed-on: https://gerrit.instructure.com/66125
Tested-by: Jenkins
Reviewed-by: Taylor Wilson <twilson@instructure.com>
Product-Review: Derek Hansen <dhansen@instructure.com>
QA-Review: Derek Hansen <dhansen@instructure.com>
closes CNVS-24284
json-jwt has encryption built into the library.
Also replace all bare uses of JWT library
with Canvas::Security so we use a consistent
interface throughout the app.
TEST PLAN:
1) no behavior changes
2) regression test Oauth logins
3) regression test LTI tool launches
Change-Id: If1a98cc9fbaf9f77631b730a5afe0951347743ab
Reviewed-on: https://gerrit.instructure.com/65774
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
Tested-by: Jenkins
includes n-strand improvements to perform load balancing
at runtime instead of queue time
(e.g. should prevent one strand from getting blocked when
queueing many imports at a time)
test plan:
* regression test delayed jobs
Change-Id: I2f616d380c841d7231af5159c09c24cbcc8d235d
Reviewed-on: https://gerrit.instructure.com/65976
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
we're using this, but didn't explicitly have it in the Gemfile, so we lost
it with the testbot removal. not a problem in CI / canvas cloud, since
other plugins add it, but its absence would break canvas open source.
test plan:
1. remove any extraneous plugins
2. bin/spring stop
3. bundle install
4. bin/rails s
5. canvas should load up, instead of giving an httparty (or other) error
Change-Id: Ied85bb37720cca3815d80c9987a427d770fc6c2e
Reviewed-on: https://gerrit.instructure.com/65322
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins
testbot gem is now being referenced on the build machine locally and no longer relies on old github
reference to be used within Canvas
Change-Id: I4966f9afef38d6832bda7b88db125456850d7e57
Reviewed-on: https://gerrit.instructure.com/65259
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins
the # is not necessary, but now you won't get misleading linter messages
if you do one, e.g. refs #PROJ-123
test plan:
1. the linter should not complain about this commit message
Change-Id: I3eb9e5de093a5b8948c2892bd3ecdec8c3ea4add
Reviewed-on: https://gerrit.instructure.com/65225
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>