also fix searching all accounts to do so case insensitively
Change-Id: I3199f5ecd80d07e685c09c31bdffc96ef0f5371e
Reviewed-on: https://gerrit.instructure.com/6592
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
* expose sortable name directly to the user
* don't downcase it
* use a LOWER(sortable_name) index for postgres
* set sortable name as "last_name, first_name" explicitly for SIS imports
* populate sortable name intelligently in the UI
Change-Id: I476641f4817e27a11b573d91f102c5a74d3eba26
Reviewed-on: https://gerrit.instructure.com/6512
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
refs #5833 (ish)
users are created in the root account, so you must be allowed to
create users in that account, not the current account
Change-Id: I545cc873f682cd07888c949a56e4bb6cbb47566e
Reviewed-on: https://gerrit.instructure.com/6583
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
The previous fix for this in #4949 broke some
other question types where the app would get stuck
in a loop of selecting 3-4 inputs rendering the
page useless.
Added jQuery.fn.placeholder, can now use the
placeholder attribute on input elements, and then
call $(selector).placeholder(); to support IE.
The plugin checks for support and does nothing for
browsers that support placeholder, so we don't
need to do it ourselves.
also fixes#4949 (again)
Change-Id: Ifbb3e8110ea259ccbe235e3e364050ab29a51b68
Reviewed-on: https://gerrit.instructure.com/6572
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jon Jensen <jon@instructure.com>
I can't find any rendering of _menu_section where this param is
included, and since id is actually a deprecated method name on the
Object class, this is filling the logs with a bajillion deprecation
warnings.
Change-Id: I64c9812f2772f12ecfe8220409f3b6ee39487a23
Reviewed-on: https://gerrit.instructure.com/6554
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
refs #5948
adjust specs so that if a login does inject themselves in by adding
additonal redirects, we keep following them
Change-Id: I16e616066ea1bef1aa5ed97718cbd8ddbd2c27c5
Reviewed-on: https://gerrit.instructure.com/6536
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
- Added "Loading…" and "Image not found" feedback
text when fetching images supplied by the user
- Added I18n support to copy
- Pulled logic out of excessively nested blocks
into function declarations
- Removed an unnecessary interval that was
running on every page with an editor (just
needed a keyup instead of keypress handler),
this improves performance everywhere in the app,
but probably not noticeable for modern browsers.
- Removed intervals to detect image load and just
bound to the 'load' event, loading an image url
is now super snappy (interval was checking every
500ms, so it was really slow at half second
intervals).
- Removed duplicate logic for embedding an image
- Cached all elements that get reused.
- Other general performance/readability/whitespace
improvements.
Change-Id: Ifb7e21d2a4503c79c94d102a4fe7d9ccd088c78a
Reviewed-on: https://gerrit.instructure.com/6410
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
fold "I'll create groups myself" into "create 0 groups now" for self
sign-up categories
Change-Id: I562f5f303da52fa6e7bcbdc2ce1fb7b071bb8342
Reviewed-on: https://gerrit.instructure.com/6143
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
new stuff
---------
- added curl.js AMD module loader
- converted existing js specs to use QUnit
- removed jasmine stuff
- added rake task to run js specs
dependencies!
-------------
you'll need to install http://www.phantomjs.org/
if you want to run the specs.
next step is to incorporate curl.js into our app
environment.
Change-Id: I0ba97bc9abe1494f87fdfc0eca51d987a759bc85
Reviewed-on: https://gerrit.instructure.com/6477
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Depending on spec run order, these would fail due to various plugin
setting problems and/or a bad stubbing in an api spec
Change-Id: I6b82949cb9eb67cc6b4d1e55c1393a42d7054c69
Reviewed-on: https://gerrit.instructure.com/6530
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
after the changes in 215e828, scrolling was a lot
faster but the page still hung on dom ready in ie8
and triggered IE's "a script is running slowly"
dialog this helps address that.
refs: #6047
Change-Id: Ic9548f35666762702f57edcf039aaf199d4a92a8
Reviewed-on: https://gerrit.instructure.com/6441
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
the inputs on the login screen use a background
image for to get the big rounded corner look.
chrome (and, apparently now safari too) forces a
background-color: yellow !important;
background-image: none !important;
in the system stylesheet so it can't be overwritten
Change-Id: Ic41ff35e7afe856735cd88dc3a28cf89f717f9f6
Reviewed-on: https://gerrit.instructure.com/6499
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: BJ Homer <bj@instructure.com>
refs #5833 (ish)
also fix it so that non-self-enrolled users can't unenroll themselves
Change-Id: I584ce21df0aa31d3a37c9b611a65d29858c2a41b
Reviewed-on: https://gerrit.instructure.com/6486
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
refs #5833
prior to the big refactor, creation_pending users were created with
pseudonyms. after the refactor they aren't (since there could be
conflicts that need to be resolved by the user). without this fix,
the old users that have a pseudonym would be forced to create another,
non-conflicting pseudonym. this fix just reuses the pre-created
pseudonym, if it exists
Change-Id: Ib3dc822e6ca179fb0e512d8bc4b3014cdaad262a
Reviewed-on: https://gerrit.instructure.com/6483
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
just a bit of cleanup
Change-Id: I9535e38155b663c252514a08d65e75dba05719e9
Reviewed-on: https://gerrit.instructure.com/6482
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
note that it's not strictly broken by #5833's changes, because it
didn't work for existing users before (it would ask you to login
if you weren't, and you put in an existing e-mail address, and then
it would ask you to login again if you were already logged in).
Change-Id: Idb84397ad90987076c8e717863be496fc825b77e
Reviewed-on: https://gerrit.instructure.com/6481
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
when downloading a file (attachment) that's on S3, include the
response-content-disposition parameter in the redirect url so that the user
will get a Content-Disposition header from S3 giving the file the correct
disposition (attachment, not in-browser) and the correct filename (the
'natural' filename in S3 is that of the first copy of the file uploaded;
someone else may have uploaded it again with a different filename; we want them
to see the correct filename in the download).
CAVEATS:
* in the case of duplicate files with different filenames, the content
disposition will cause the correct filename to be used by the browser in
saving/prompting-to-save the file, but the actual S3 filename will still be
present in the URL if inspected.
* the filename in the content-disposition is correctly quoted as per RFC 2616
for ASCII, but a lot of browsers do it wrong. we are making no attempt to
accomodate their idiosyncracies.
* the http quoting we do is ghetto and doesn't account for multi-byte
characters.
fixes#4473
Change-Id: I468a6ecdaee2946ab89172984adacf20b491d541
Reviewed-on: https://gerrit.instructure.com/6506
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
* Make sure we pass the enrollment info on when registering a new user
* Fix bug that we would use the current user's enrollment, rather than
the enrollment in the session (from an invitation link)
* Optimize check_enrollment a bit - don't do a query for NULL uuid
* Optimize the non-preview workflow to cut out a redirect that
can be handled inline
Change-Id: I0ec08df2c910995d95782dd98aa863f3f62db549
Reviewed-on: https://gerrit.instructure.com/6416
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
closes#5880
We track failed attempts for both (pseudonym) and (pseudonym, ip) in
Redis, the latter with a lower threshold. If either threshold is
exceeded, the user can't attempt to login for a given time period
(default 5 minutes). This protects against brute force auth attacks.
We've hooked into Authlogic for this, so it should apply to everywhere a
user is logged in -- login screen, API basic auth, Respondus API, etc.
It doesn't apply to SSO auth, where the SSO authority is assumed to have
existing protection of its own.
I refactored the Respondus SOAP API to use Authlogic in a more standard
manner, to make this work.
Change-Id: I569823f83c5c2855526464da270426275eb857cd
Reviewed-on: https://gerrit.instructure.com/6428
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
some qti questions that are converted don't have an identifier
like they're supposed to. This allows those questions to still
be processed without causing an error
refs #5546
Change-Id: I2bc931a65095fca2e73beaaf578f99037e5e09e3
Reviewed-on: https://gerrit.instructure.com/6400
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
This shaves about 0.8 seconds off canvas startup time in dev mode on my
MBP. Not a lot, but it's something.
Change-Id: I1e835e5a97a122b2f4a5c5dcd9d86d6a4c0369b0
Reviewed-on: https://gerrit.instructure.com/6472
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>