Commit Graph

70 Commits

Author SHA1 Message Date
Cody Cutrer 0f70995c3a don't show the delete auth provider button for your current login
to prevent locking yourself out

test plan:
 * have a multiple auth providers
 * add a login to an admin explicitly tied to one of the providers
 * log in with that login
 * you should not be able to delete the auth provider tied to the
   login you just used

Change-Id: I5d3a5e7ce0f33efee237e2b4764be50e72c792d9
Reviewed-on: https://gerrit.instructure.com/63259
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-09-24 15:08:49 +00:00
Cody Cutrer fb08dd4499 convert Canvas login to a real authentication provider
test plan:
 * before applying this change
   * configure one account with canvas auth, one without (on account settings)
   * configure another account with canvas auth and 3rd party auth
 * check that /login still works on the above accounts, as well as
   /login?authentication_provider=canvas
 * run migration
 * Canvas auth should properly show up or not in authentication providers,
   and below any pre-existing providers
 * delete all auth providers; Canvas should automatically show up after you
   delete the last one
 * Canvas auth should be respected for logging in when it is enabled/not
   enabled (i.e. not enabled you can't login with a canvas password)

Change-Id: I873a4fe3e217f84384da6e5afbf5c280ae368c0b
Reviewed-on: https://gerrit.instructure.com/61814
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-09-14 21:13:38 +00:00
August Thornton c542e7a522 make radio_button_tag id's unique per config
fixes CNVS-22165

test plan:
  * go to /accounts/self/authentication_providers
  * create at least two ldap configs
  * ensure the radio buttons work independently
    per ldap configuration
  * ensure radio button selections save properly
  * default ldap config should check
    "No TLS" by default

Change-Id: Ibb1702b0d732a91856191b054d33c389a5c0dbab
Reviewed-on: https://gerrit.instructure.com/60089
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: August Thornton <august@instructure.com>
2015-08-06 17:32:05 +00:00
Cody Cutrer 9758115997 rename account authorization configs to authentication providers in routes
fixes CNVS-21924

also completely removes the long-deprecated update_all form

test plan:
 * create, update, delete an authentication provider via the UI
 * delete all providers via the UI
 * create, update, delete an auth provider via the API using both
   old and new routes

Change-Id: Id75351b937baf7369928edca1f8e08729214ad99
Reviewed-on: https://gerrit.instructure.com/58652
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-07-21 23:58:23 +00:00
Cody Cutrer ab2f304a7e allow sso settings to be configured without constraint
canvas auth counts as a provider, and even with just canvas auth a
school may want to send to their website first

Change-Id: Icfd833b0c0786334d98e21011a66af8146280c0b
Reviewed-on: https://gerrit.instructure.com/57543
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-07-21 16:46:05 +00:00
Ryan Shaw f6edb77702 s/jammit_css/css_bundle
with the new css stuff, we don't actually use
jammit so jammit_css has been renamed to css_bundle.

we left an aliased jammit_css and marked it deprecated
so these all still worked but spit out a deprecation warning.

Change-Id: Ib74037711f559f64851d9379644479587c1f83f2
Reviewed-on: https://gerrit.instructure.com/55888
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
2015-07-07 21:26:35 +00:00
August Thornton 04fbc812c0 remove extraneous greater-than symbol
test plan:
  - set up a LDAP configuration
  - verify greater-than sign is no longer present in
    "Test LDAP Authentication" button title

Change-Id: I9fc476f71d0a6c5da325c1eda1d2d8d8753c5af7
Reviewed-on: https://gerrit.instructure.com/57548
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: August Thornton <august@instructure.com>
2015-07-01 19:52:03 +00:00
Ethan Vizitei 93c612b822 fix auth selector for AACs
closes CNVS-21177

Turns the auth type selector into a react component
and makes sure it responds correctly in a couple
corner cases (with specs!)

TEST PLAN:

1) go to the authentication providers config page
2) add several authentication providers
3) you should always be scrolled down to your new
  form when you add a new one

Change-Id: Ia520ee358dbc8a469e29e13fcd653cf11f9259b3
Reviewed-on: https://gerrit.instructure.com/56377
Tested-by: Jenkins
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2015-06-16 15:49:24 +00:00
Ethan Vizitei f7401feb8f Soft delete accont authorization configs
closes CNVS-20947

Allow users to "delete" auth configs without
violating foreign key constraints.
Also means updating all places that use the
association interface to a new method
that strips out inactive AACs

TEST PLAN:
 1) create a new AAC with the IDP of your choice
 2) create some pseudonyms that are attached to the new AAC
 3) try to delete the AAC from the authorization config area
 4) it should not blow up

Change-Id: Iff56fd8aa2ee66a2468191a9c880a99862d83927
Reviewed-on: https://gerrit.instructure.com/55808
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2015-06-12 20:10:28 +00:00
Tyson Brown d71945faad Register Parents and Add Observees when configured for SAML
authentication

Fixes PFS-1084

Parent Registration:
When a Saml config is designated for Parent Registration the parent
signing up will be redirected to a Saml login page where they will log
in with their child's credentials.  After login the child user's
Saml session will be ended and the parent registration process will complete.

Parent Adding Student:
When a Saml config is designated for Parent Registration the parent
adding another observee will be redirected to a Saml login page
where they will log in with their child's credentials.  After login the child user's
Saml session will be ended and the observee creation process
will complete.

---------------------------------------
TEST PLAN:
SETUP:
1) In your account settings check the box for 'Self Registration' (and
either of the sub-options)

2) Add the following users to your account (these will be the students):
billyjoel
eltonjohn

3) In Authentication Settings add a SAML authentication service
and enter the following fields (I've set up a remote SAML Idp):

IdP Entity ID:  http://107.170.212.143/saml2/idp/metadata.php
Log On URL:  http://107.170.212.143/simplesaml/saml2/idp/SSOService.php
Log Out URL:
http://107.170.212.143/simplesaml/saml2/idp/SingleLogoutService.php
Certificate Fingerprint:
9C:11:68:93:95:CD:18:01:EC:52:2B:9E:22:7F:73:55:ED:6D:82:D4
Parent Registration:  check

TEST:
Parent Registration:
* Go to '/login/canvas'
* Click on the signup banner
* sign up as a parent for billyjoel or eltonjohn
  (on SAML login page the password for either user is: tantrum)

Add Student:
* Log in as a parent user w/ a Canvas Auth login
* Go to '/profile/observees'
* Add Student 'billyjoel' or 'eltonjohn'

Authentication Settings (new parent reg checkbox):
* Go to Authentication Settings
* Add a second SAML config
* check the parent registration checkbox
  - it should warn that selection will deselect the other
    and in fact do so upon save.
  - the selected config is the one used for
    parent reg/add student
---------------------------------------

Change-Id: Ief83b604fc252c88dbb912c56de65d8620fe802f
Reviewed-on: https://gerrit.instructure.com/49691
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2015-06-11 15:25:19 +00:00
Cody Cutrer d21c2dc92e allow choosing other login attributes for oauth providers
closes CNVS-20912

test plan:
 * change the login attribute
 * ensure the error message you get when it can't find your login
   shows the value you expect

Change-Id: I8fbad8c4df5f2dc5b01cf43d5d6c43ab7be97972
Reviewed-on: https://gerrit.instructure.com/55665
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-06-05 21:35:55 +00:00
Cody Cutrer cb49df1d7a rework authentication providers forms using new styleguide
header and footer were deleted and collapsed up into aac_settings partial,
so that doesn't need to be repeated in each provider type.

share an oauth2_fields partial between many of the oauth2 providers

test plan:
 * config and reconfig all the types of auth providers

Change-Id: I7a91f0528fe1cef8da50f0a141347958ba4fa93a
Reviewed-on: https://gerrit.instructure.com/54862
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
2015-06-05 21:35:30 +00:00
Cody Cutrer fcf79afe8b refactor pulling plugin settings for authentication providers into a module
Change-Id: I574d3debc781e27cedbec00199d4a1bb44052d0b
Reviewed-on: https://gerrit.instructure.com/54662
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-06-03 20:38:35 +00:00
Cody Cutrer 9ec7c4ee0c Google and OpenID Connect auth backends
closes CNVS-19536, CNVS-19540, CNVS-19545

test plan:
 * test google auth
 * re-test the other oauth providers, cause more stuff got refactored

Change-Id: Ib1c0332cc31f0825f171f3281bf7255abb602844
Reviewed-on: https://gerrit.instructure.com/54526
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-05-21 22:57:51 +00:00
Cody Cutrer ddcfaa948e move unknown_user_url up to account settings
fixes CNVS-20620

no need to have 1 per AAC

test plan:
 * use a delegated auth provider
 * configure an unknown user url
 * log in with a user that doesn't exist in canvas
 * it should redirect to your url

Change-Id: I962513a58993bbb98921c2337d228cb53de06e9e
Reviewed-on: https://gerrit.instructure.com/54671
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-05-21 22:57:25 +00:00
Cody Cutrer c5b26ca160 linkedin auth
closes CNVS-19535, CNVS-19538, CNVS-19544

test plan:
 * you know the drill

Change-Id: I7ff16d06b58d11c2775a6ad251fc5d66d17160db
Reviewed-on: https://gerrit.instructure.com/54343
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2015-05-21 22:35:54 +00:00
Cody Cutrer 0a32c11bbc twitter login support
closes CNVS-19463, CNVS-19460, CNVS-19461

test plan:
 * you know the drill by now.
 * retest facebook, because that was refactored to share code

Change-Id: Iaf99b7b3c6850b1ac3690d1a5ebd1286268b5ae7
Reviewed-on: https://gerrit.instructure.com/54313
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
2015-05-19 22:54:09 +00:00
Cody Cutrer de2c8efa57 GitHub authentication
test plan:
 * register an application on github
 * configure github as an authentication source
 * login with github
 * it should complain about a missing user
 * add that ID to your user
 * login again, and it should work
 * delete github authentication
 * reconfigure at /plugins/github
 * add authentication again; this time it shouldn't let you configure
   the integration
 * login with github again

Change-Id: I2be3dd482de79873ad845890827292bc4f995b7a
Reviewed-on: https://gerrit.instructure.com/54241
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-05-19 20:30:15 +00:00
Cody Cutrer d8f1108bc7 Facebook login support
fixes CNVS-19449, CNVS-19454, CNVS-19455

test plan:
 * configure the facebook plugin (/plugins/facebook)
 * add Facebook to your authentication configs
 * try to login with valid facebook credentials - it should say it
   couldn't find the user
 * add a login to your user with that ID
 * try to login with facebook again; it should work
 * delete auth settings and plugin settings
 * re-add the auth settings - it should let you configure it
   directly
 * log in again

Change-Id: I5aae400fe39fda6e1a864a062368e50a4c9f4ede
Reviewed-on: https://gerrit.instructure.com/54208
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-05-19 20:30:01 +00:00
Cody Cutrer 946116045a refactor PseudonymSessionsController
fixes CNVS-20394

split it into appropriate concerns. main points are:

 * /login never renders a login form - it redirects forward to the
   default auth controller based on the first account
   authorization config (or discovery url on the account)
 * /login/canvas is the new home of the old login form. this form is
   never rendered in-situ anymore - other places that used to render
   it now redirect to /login (and then forward to here), reducing
   their knowledge of SSO
 * /login/ldap ends up at the same place (cause LDAP auth is handled
   transparently)
 * /login/cas and /login/saml redirect forward to the first SSO
   configuration of the appropriate type. /login/:auth_type/:id can
   be used to select a specific one
 * if an SSO fails, it redirects back to /login with flash[:error]
   set. this can forward to the discovery url appropriately, or
   render an error page appropriately (the old no_auto=1, but now
   it's not layered on top of the login partial that didn't show a
   login form)
 * ?canvas_login=1 is deprecated. just go directly to /login/canvas
 * /saml_consume, /saml_logout are deprecated. they are processed
   directly by /login/saml and /login/saml/logout
 * /login/:id is deprecated - it forwards to /login/:auth_type/:id
   as appropriate (presumably only saml, since that was the only
   one that previously should have been using these links)
 * OTP has been split into its own controller, and separated into
   multiple actions instead of one all-in-one action
 * /logout has been vastly simplified. the login controller should
   set session[:login_aac], and on logout it will check with that
   AAC for a url to redirect to after logout, instead of /login.
   SSO logout is handled by each controller if they support it

test plan:
 * regression test the following functionality -
   * login with canvas auth
   * login with LDAP auth
   * login with SAML auth - and multiple SAMLs
   * login with CAS auth
   * MFA (configure, using, auto-setup)
   * Canvas as OAuth Provider flow
   * redirects to the login page when you're not
     logged in
   * failure of SAML/CAS (i.e. can't find user)
     show a decent error page and allows retry
   * "sticky" site admin auth (site admin is CAS/SAML,
     going directly to another domain logs you in with
     site admin)

Change-Id: I1bb9d81a101939f812cbd5020e20749e883fdc0f
Reviewed-on: https://gerrit.instructure.com/53220
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-05-15 14:44:38 +00:00
Ethan Vizitei af463d923d refactor views for unified AAC administration
closes CNVS-20076

First, pull a presenter out of the AAC index

This thing needs more flexibility before introducing
multiple OAuth connectors.  This commit adds a couple characterization
specs for the AAC controller, then drives out a presenter to pull
as much logic and config out of the nested views as possible.

Then, this commit refactors the
previously-somewhat-bespoke-and-presumptive sac
configuration into a workflow that shows each aac
in turn according to it's type, creating forms for
each type at the bottom, and
showing the relevant form for a new one based on
selection on the right.

Have regression tested in the browser to the level
of CRUD functionality, but also deserves solid QA
for SSO functionality post-configuration.

DONE:
-successful CAS creation/editing/deletion
-successful LDAP creation/editing/deletion
-proper differentiation between LDAP primary and secondary
-proper SAML creation/editing
-move away from "update_all" deprecated endpoint
-Selenium Spec fixes
-ensure discovery URL and debugging workflows for saml
-remove duplication from views
-tear down old JS workflow
-apply appropriate tests for new behavior
-remove presenter methods that are no longer valuable
-Moved change_password_url and login_handle_name
-up to account settings, removed them from AACs, and built
-migrations to manage the transition.
-Found and fixed all references to change_password_url on AACs
-Found and fixes all references to login_handle_name on AACs
-add datafixup for migrating AAC data to account settings
-unify repetative individual files into single form delcarations \o/
-remove old SAML editing js
-Make sure SAML still works
-Make LDAP partial flow just like SAML/CAS
-Unify position information across all types
-update "acts_as_list" to support STI classes
-move discovery URL into account auth form
-remove discover URL js management
-Unify form generation between new/existing aacs
-deprecate discovery url API endpoints
-update docs for authorization settings to deprecate their usage in AAC
  api and redirect their values to current settings for now
-make delete links non-js-y to stop this silly page refresh on api
  completion
-make form submissions actually submit the form rather than do this silly
  page refresh on api completion
-See if anything needs “Edit Details” button, remove if not
-Wire up removing account settings by blanking out form
-Removed "cancel" button from form because fields are always open
-placate gergich
-Test removing config info
-Test population fixup on real data
-write docs for authorization settings
-fix existing specs
-fix routing and docs to not break doc generation
-fix stupid jenkins task that thinks it can’t see controls
-re-fix selenium
-fix saml debugging workflow
-write tests for acts_as_list behavior
-write tests for authorization settings
-remove auth_info types of things
-clean up and unify styles where possible

TEST PLAN:
 Regression test creating/deleting/editing and logging
 in with SSO solutions for CAS, LDAP, and SAML.
 Should be no functional behavior modification, though
 workflow will be a little more unified between the
 3 currently supported types (each one will
 require using the menu in the right sidebar
 to add a new AAC).

 Also test setting and deleting account settings through
 the form underneath the configs when there are AACs in existence.

 Finally, make sure that the SAML Debugging workflow still works.

Change-Id: I448db10185512d1b9469c2a425be0a3bcf9e6ebf
Reviewed-on: https://gerrit.instructure.com/53448
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2015-05-14 21:47:05 +00:00
Cody Cutrer a9f8e81b54 refactor account authorization configs into per-auth type classes
test plan:
 * basic smoke test configuring and using non-Canvas authentication

Change-Id: I45b5fda173a400d9eebb04d17d979e798d297c38
Reviewed-on: https://gerrit.instructure.com/50864
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2015-04-28 15:17:59 +00:00
Spencer Miller af5f6c09ac Typo fix: changed occurrences of unkown to unknown
test plan:
- Ensure documentation for AccountAuthorizationConfigsController#create 
does not have an occurrence of "unkown"
- Ensure the keys ":unknown_user_url" and ":unknown_user_url_description" 
in app/views/account_authorization_configs/_saml_settings.html.erb 
(lines 207 and 210) translate properly and display the correct text.

fixes CNVS-17939

Change-Id: I42627eaccf2e69ff1e354a9da68e4144c738f5aa
Reviewed-on: https://gerrit.instructure.com/47035
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2015-03-25 20:08:05 +00:00
Chris Hart 6203efbf8d Regression on dropdown in authentication settings
Fixes: CNVS-18824

Updates icon markup so the dropdown is less ugly.

Test Plan:
- Create a SAML config from your root account in
  Settings > Authentication.
- The dropdown under Current Integration should
  now look like this:

  http://cl.ly/image/2s000H2j2a2f

  ...instead of this:

  https://www.dropbox.com/s/6l8m8s54n5t3flb/Screenshot%202015-02-21%2015.03.15.png?dl=0

Change-Id: Ie321be9e15837d3e180f3566fff1d1e2a350c17b
Reviewed-on: https://gerrit.instructure.com/49776
Tested-by: Jenkins
Reviewed-by: Colleen Palmer <colleen@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
QA-Review: August Thornton <august@instructure.com>
2015-03-11 15:07:39 +00:00
Aaron Cannon dbadd7f147 a11y: Fixed screen reader issues with Kyle menus.
Screen readers no longer enter, exit, or report applications mode/region when
passing over menu trigger controls. Menu triggers can also be navigated
to with screen reader "jump to next/previous button" navigation shortcuts.

Fixes CNVS-15275

Test plan:
- Visit each kyle menu in Canvas.
- Verify with a screen reader:
  - That the trigger is reachable via normal arrow key navigation
  - That the trigger is reachable when navigating by buttons
  - That the menu opens when enter is pressed on the menu trigger
  - That forms mode is activated when the menu is opened (N/A in Voice Over).
  - That the up and down arrow keys allow one to navigate through the menu
  - That pressing enter on a menu option activates that action
- Verify that menu triggers are reachable by the keyboard (sans screen reader).
- Verify that all the other functionality relating to menus as discussed above
  is accessible to keyboard only users.

Change-Id: I81d7678251b7c43e67504d5569e59ccd2f846949
Reviewed-on: https://gerrit.instructure.com/40951
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Product-Review: Ryan Florence <ryanf@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
2014-09-18 21:33:17 +00:00
Matthew Berns 0491ae3211 updating h1 tags for accessibility
fixes CNVS-15104

test plan:
- visit edited pages from spreadsheet below
- test page headings with screenreader in safari
- pages should have level 1 headers for screenreader that proceed in order logically
- compare top level headers on assignments, modules, syllabus, and wiki pages
bewteen their actual pages, and their pages when called from home page selection
- headers for the above pages should be h1 on their respective pages, and h2
when called from home page, and stll proceed logically

Changes need to be tested on the following pages
default home page (/)
home page set to course modules
home page set to front page
home page set to assignments list
/courses/1
/courses/1/assignments
/courses/1/assignments/new
/courses/1/assignments/1/edit
/courses/1/discussion_topics/new
/courses/1/discussion_topics/1
/courses/1/discussion_topics/1/edit
/courses/1/gradebook#tab-assignment
/courses/1/gradebook/speed_grader(just pick any assignment w/ speedgrader)
/courses/1/groups
/courses/1/user_services
/courses/1/pages/(whatever page for course)
/courses/1/quizzes/1/edit
/courses/1/quizzes/1/take?preview=1
/courses/1/question_banks/2
/courses/1/quizzes/1/take
/courses/1/conferences
/courses/1/modules/progressions
/calendar2
/about/1
/profile/settings
/dashboard/eportfolios
/conversations?#filter=type=inbox
/accounts/1
/accounts/1/users
/accounts/1/sub_accounts
/accounts/1/account_authorization_configs
/accounts/1/groups
/accounts/1/users/2
/accounts/1/permissions
/accounts/1/avatars
/users/2/user_notes
/accounts/1/rubrics
/accounts/1/grading_standards
/accounts/1/user_notes
/accounts/1/admin_tools
/users/1/admin_merge
/users/1/teacher_activity/student/1
/users/1/masquerade

Change-Id: Ifdad341a22631c0d6773977743be741e74fecd88
Reviewed-on: https://gerrit.instructure.com/40370
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
Product-Review: Aaron Cannon <acannon@instructure.com>
2014-09-17 20:59:38 +00:00
Simon Williams 4c34761c34 remove unused page_header and page_subhead content blocks
closes CNVS-14803

test plan:
- make sure the headers are unchanged on the following pages:
  - /accounts/1/account_authorization_configs
  - /accounts/1/sis_import
  - /courses/1/content_exports
  - /courses/1/confirm_action?event=delete
  - /accounts/1/terms
  - /accounts/1/sub_accounts
  - /accounts/1/users/1/delete
  - /users/1/admin_merge

Change-Id: I4563e243cb733e2826d52b408991032da3767efa
Reviewed-on: https://gerrit.instructure.com/39373
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2014-08-27 21:52:14 +00:00
Nick Cloward fbc53265e4 add redirect config to account authorization
fixes: CNVS-9194

This adds a configuration to CAS and SAML which will redirect to when an
unknown user is authorized from CAS or SAML but we do not have a
pseudonym for them in canvas yet.  Instead of logging them out of CAS or
SAML it will redirect them to a custom url.  By default if no url is
configured it will redirect to the login page or cas login page.

Test Plan:

CAS:
  - Setup a User on the CAS server that can login.
  - Make sure the user is not in Canvas and wont be matched up to any
    other Canvas pseudonyms.
  - Log in to CAS and Canvas.
  - Canvas should redirect to cas_login_url.
  - Configure the Canvas CAS setting unknown user url to redirect to
    a custom url.
  - Log in to CAS and Canvas
  - Canvas should redirect to the custom url specified.
  - The user should not be logged out of CAS.

SAML:
  - Setup a User on the SAML server that can login.
  - Make sure the user is not in Canvas and wont be matched up to any
    other Canvas pseudonyms.
  - Log in to SAML and Canvas.
  - Canvas should redirect to login_url and provide a flash message
    stating that the user could not be found.
  - Configure the Canvas SAML settings Unknown User Url to redirect
    to a custom url.
  - Log in to SAML and Canvas
  - Canvas should redirect to the custom url specified.
  - The user should not be logged out of SAML.

Change-Id: I29a78f8ec60c94caecf63547584d8ae804ffc9de
Reviewed-on: https://gerrit.instructure.com/38472
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
2014-08-14 15:12:41 +00:00
Aaron Cannon b8fc5f3ec6 accessibility fixes to kyle menus
fixes CNVS-9554

all items are properly read and focused when
navigating Kyle Menus via keyboard

this commit patches JQueryUI menu.js :(

test plan:

- Create a graded discussion.

- Activate the discussion cog menu, and confirm
  that all items are read by a
  screen reader, and properly focused on screen
  when arrowing up and down via the keyboard.

- Leave a reply, and test the cog menu on the
  reply as above.

- Confirm that all items within the menu are
  activatable by pressing enter

- Verify that the appearance of the page is still correct.

- Visit all other pages with Kyle Menus, and
  verify the same as above.

- make sure to test in IE since the way click
  events are simulated is different code

Change-Id: I735573b3151c1133b6bdfb2f0e6bea6b7a285372
Reviewed-on: https://gerrit.instructure.com/27447
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Aaron Cannon <acannon@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
2014-05-09 21:15:06 +00:00
Cody Cutrer 461a425e4e fix some crumbs I18n
fixes CNVS-3106

test plan:
 * change language
 * /accounts/X/account_authorization_configs
 * /accounts/X/avatars
 * go to a user page, and click "Delete from X" (where X is the account)
 * all three of those pages the bread crumbs should be localized

Change-Id: I198275963999bb08fceb0659a7097af6287d8684
Reviewed-on: https://gerrit.instructure.com/34484
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2014-05-09 15:56:22 +00:00
Rob Orton 87cd6d57b3 fix typo in LDAP config settings
fixes CNVS-12781

test plan
 - specs should pass

Change-Id: I53aad0d08ae0cf5f81faa612f4351b993ef2c712
Reviewed-on: https://gerrit.instructure.com/34111
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Nick Cloward <ncloward@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
2014-05-01 20:05:19 +00:00
James Williams 6f2b03a56b create temporary records with .scoped.new for rails 3 compatibility
in rails 3, .new is analogous to .build for collections, so otherwise
temporary records will be added to the collection (and be autosaved)

Change-Id: I08ce7b4b35ee35646aff3afd237bbe896162a014
Reviewed-on: https://gerrit.instructure.com/30334
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2014-02-20 20:55:11 +00:00
James Williams 303e898b64 fix account_authorization_config fields_for for rails 3
Change-Id: I64b648d361607fe17c6d0f5befcf057b10c34cd4
Reviewed-on: https://gerrit.instructure.com/30093
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2014-02-13 19:57:27 +00:00
James Williams 6e80bd0188 view spec fixes for rails 3
* fix view spec rendering to include helpers
* re-implement have_tag rspec matcher
* fix problems with finding routes to
 unsaved records

Change-Id: I6ed267fcf5e8e32a62ee059be46371bc0ea35603
Reviewed-on: https://gerrit.instructure.com/30016
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2014-02-13 16:50:55 +00:00
James Williams 0fe0ba0180 change block helpers for rails 3.2 compatibility
closes #CNVS-5018

Change-Id: If1cef73759f090efe2a58dc97c351410a552ae1d
Reviewed-on: https://gerrit.instructure.com/25109
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2013-10-11 23:09:37 +00:00
Brian Palmer c17f3570bd use the now-standard timeout_protection for ldap binding
The previous code was a one-off written before timeout_protection
existed. This means that we'll now allow N timeouts (3 by default) in
the given period, rather than refusing to connect to the LDAP server
after just one timeout.

closes CNVS-8371

test plan:

* Configure an account to use ldap. Rather than setting up a real ldap
  server, it's sufficient for this testing to just use nc or another
  application to listen on the port you specify in the account config.
* Attempt to login to the account, and see canvas in your nc output.
  Allow it to timeout. Attempt again, and canvas will hit your "ldap
  server" again. After 3 timed out attempts, canvas will blacklist your
  server for 1 minute.
* Also verify that logging in with ldap still works against a real ldap.

Change-Id: I60293d01690be3cc24f57b8bcd5c6c52e23fc2a9
Reviewed-on: https://gerrit.instructure.com/24657
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
2013-10-03 22:18:16 +00:00
Cody Cutrer ccae3722dd make SAML an optional feature
so that xmlsec isn't a required feature

test plan:
 * remove xmlsec from your system
 * restart your server
 * existing SAML configs should be ignored (i.e. when you go to login
   at an account with SAML, it should give you Canvas login)
 * configuring authentication settings should not show SAML in the
   dropdown (existing SAML configs just won't show up, but you can
   still disable it)

Change-Id: Ic44e05f97ea7d0b919d5165a943b91011ebe70bf
Reviewed-on: https://gerrit.instructure.com/21925
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2013-07-12 16:13:42 +00:00
Jon Jensen 6c411dbd44 ldap settings js_block -> .js, refs CNVS-4380
no changes, just moving code around

test plan:
1. go to Account -> Authorization
2. add an LDAP config, but leave everything blank
3. click "Test Authentication"
4. the first test should fail and the rest should be canceled
5. set up LDAP according to: https://gist.github.com/jenseng/1b2ab5f505c54b9cf57c
6. click "Test Authentication" again
7. three tests should pass, and when you enter the credentials: user / pass
   the last test should pass

Change-Id: Ia612797a290dc932abd0380f63997cf6599f24fe
Reviewed-on: https://gerrit.instructure.com/18298
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
2013-03-06 10:30:22 -07:00
Ryan Florence 926cb0ca24 Fully adopt Bootstrap & update css to work with it, closes: #CNVS-1344
this commit does the following:
* upgrade bootstrap-sass gem to most recent version
* switches to using bootstrap's normalize.css and forms.css
  which fixes a whole bunch of misformatting of how bootstrap
  stuff is supposed to look, but changing those 2 affects
  a lot of our old stylesheets.
* gets rid of unified_buttons.sass and just uses bootstraps buttons.
  .ui-button @extends these because we still have to support .ui-button
  for modals & buttonsets. but .button is no longer supported.
* a lot of css file reorganization (there's no more 'blue' and
  'normal canvas', there's just canvas)
* a bunch of files had to be tweaked to look good with these changes.

test plan:
This change touches every page in canvas so, no kidding, we need to make
sure every page looks OK. In order to do that:
1. each sprint team needs to give a +1 after they make sure all the
   pages in the features they are over look good.
2. the QA person on each team needs to look at the pages for their
   teams features for a QA +1

things to look for specifically when testing:
* buttons: this gets rid of all those red 'cancel' links
  that are actually buttons, make sure all the buttons you see
  look right.  if you see 2 plain gray buttons next to each other
  like [Save] [Cancel], we should make the primary one blue (by
  adding the .btn-primary class)
* Forms: a lot of this change has to do with how form elements look,
  especially <select>s, <input>s and <label>s. look at the diffs
  for the ones that have the most changes and make sure those look
  good, but also check for the ones I missed and make sure those
  look good too.
* and just random style changes, if something looks ugly or broken
  (and it didn't before), we should fix that.

Also:
just use a link instead of a drop-menu for adding event from sidebar

we used to have a drop down menu for adding events
to cal2 from the sidebar where you'd hit a cog
and it'd ask you if you wanted to add an event or
an assignment.  this just simplifies it to an add
icon.

this: http://cl.ly/image/133a2A3q3q1M
instead of: http://cl.ly/image/46463o2s3W0g

Change-Id: I384fe273934bca96bf28423afb1402c7792d8766
Reviewed-on: https://gerrit.instructure.com/15422
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
QA-Review: Ryan Florence <ryanf@instructure.com>
2013-02-28 21:06:45 -07:00
Ryan Shaw 713d0b8c91 replace all .button(s) with .btn
in order to not have to support buttons with .ui-button AND
.button AND .btn classes this simplifies and and makes our
codebase more consistent by deprecating the .button class
with .btn

Change-Id: I4802d785a47b36aa477f302e6ac8c87715db8a62
Reviewed-on: https://gerrit.instructure.com/15194
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
2012-11-14 13:29:30 -07:00
Chris Hart 171b05a4f7 update dialog box button appearance to conform with styleguide
fixes #10236

test plan:

check each updated form to ensure it looks correct and works

Change-Id: I073c3bff5860bab0b892fecbf61a41a8e9c5ec76
Reviewed-on: https://gerrit.instructure.com/13904
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
2012-11-13 13:00:36 -07:00
Bracken Mosbacker 8f61877b70 add discovery url ui to saml config page
Test Plan:
 * Add a SAML config and a discovery url
 * It should save
 * Delete the url
 * It should delete. :)

refs #10497

Change-Id: I244aa3a39ee04a6d0c83558da4962909510e9c15
Reviewed-on: https://gerrit.instructure.com/14295
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2012-10-12 13:45:05 -06:00
Bracken Mosbacker c54d3060b2 allow multiple saml auth configs and full aac api
An account can now have multiple SAML configurations, and
can set an auth discovery url.

The old AAC API has been deprecated and this adds a normal
resource API for AACs

Test Plan:
 * Test the api be doing lots of things
 * Create two saml configurations
 * Test the individual login urls for each (/login/{id}) and verify they work
 * Test that the new SAML AAC UI works.
 * Test that the SAML configuration in position 1 is used as the default

closes #10497

Change-Id: Ibe35fcf788d9506542b1079cc7420912a1e9d9a2
Reviewed-on: https://gerrit.instructure.com/14042
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2012-10-03 15:23:56 -06:00
Cody Cutrer 98b2009b1c add support for looking up logins based on returned LDAP attribute
closes #9935

test plan:
 * configure an LDAP server without a Login ID Attribute
 * logging in with a pseudonym matching username should succeed
 * set the Login ID Attribute to something the LDAP server
   returns
 * change the pseudonym to match what the LDAP server will return
 * logging in with the same original username should succeed,
   finding the pseudonym named after the returned attribute

Change-Id: I84a154de2bf4fbefa6183a9381ca21441bd2c35a
Reviewed-on: https://gerrit.instructure.com/12910
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Cody Cutrer <cody@instructure.com>
2012-08-17 20:07:30 -06:00
Simon Williams 1f4599b456 add more detailed errors to ldap tester
fixes #6347

* logs more information on ldap failures and passes it down to the browser in
  the ajax response.
* fixes a crazy javascript bug where we were accidentally using a reserved
  global var in webkit, 'status', which is a string, which interacted strangely
  with our use of it as a boolean. this fixes the tester for firefox/ie

test plan:
(for #6347)
- use the tester in firefox and ie, it should work

(for error messages)
- one at a time, change the fields of a config, and run the tester
- you should get (slightly) more helpful error messages about what is failing,
  based on status returned from the server.

Change-Id: Ic0837d7ff9f6283d615ddd4bbeef5a957dbd6553
Reviewed-on: https://gerrit.instructure.com/12880
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2012-08-17 14:31:41 -06:00
Cody Cutrer 65e4578659 allow disabling canvas auth for accounts with another auth source
disabling canvas auth also force-disables open registration, and
makes LDAP auth act like full delegated auth (CAS or SAML)

test plan:
 * configure LDAP, CAS, or SAML. MAKE SURE YOU CAN LOG IN.
 * go to account settings, and disable "Canvas Authentication"
 * open registration should no longer show up on account settings
   page (after saving)
 * ensure you can no longer log in with your Canvas credentials, but
   you can with LDAP, CAS, or SAML credentials.
 * remove LDAP, CAS, or SAML from the account
 * "Canvas Authentication" should no longer show up on the account
   settings page, open registration should
 * your Canvas credentials should start working again
 * add LDAP, CAS, or SAML back
 * "Canvas Authentication" should be back on in account settings

Change-Id: Ic7475623e5139bb545a87d8e5b1014dabaf4e854
Reviewed-on: https://gerrit.instructure.com/12850
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2012-08-16 13:09:23 -06:00
Cody Cutrer 77a2fca5b7 allow displaying/editing more than 2 LDAP configs fixes #9910
minimum to not accidentally blow away more than 2 configs

test plan:
 * in script/console, add more than 2 ldap configs to an account
 * the UI should show them all, and they should be editable
 * you should not be able to add more, or delete any individual
   config
 * normal editing of one or two configs should work just fine

Change-Id: I66b31f1b800b40aa490fd05b051bec23be9ef0bb
Reviewed-on: https://gerrit.instructure.com/12879
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Cody Cutrer <cody@instructure.com>
2012-08-16 10:27:41 -06:00
Cody Cutrer 287815c86a LDAP start tls support closes #9952
make start tls the default if not otherwise specified in the API, and
the default for new integrations in the UI. still support booleans
in the API.

test plan:
 * test non-tls, simple tls, and start tls LDAP servers
 * ensure new LDAP settings default to start tls

Change-Id: I60b2f2d6cbdd32beff14d198c92efbfd6705b041
Reviewed-on: https://gerrit.instructure.com/12923
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Cody Cutrer <cody@instructure.com>
2012-08-16 10:19:05 -06:00
Ryan Shaw 81dc9b769e don't call jquery UI methods an elements with no widget initialized
aka: no more .dialog('close').dialog({}).dialog('open')
(does not actually change any behavior visible to end user)

test plan:

as far as manual testing goes, try to go to a bunch of pages that have dialogs
and open and close them.

For engineers, if you can think of other places where we might try to set options
on a UI widget before we initialize one (like sortables or something), check that too.

Change-Id: I7415c00d8c15b562ac12eeef83fa041aff1dfb35
Reviewed-on: https://gerrit.instructure.com/12810
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2012-08-13 10:16:54 -06:00
Cody Cutrer c29fd24470 remove CAS alternate auth url
it's no longer needed for the one customer that wanted it

test plan:
 * CAS auth should continue to work

Change-Id: I47bd461769019bb9b57cbbfa8236de14c1614285
Reviewed-on: https://gerrit.instructure.com/11788
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2012-06-25 12:10:58 -06:00