canvas-lms/lib
Evan Battaglia 74bc1c72bc MSFT Sync: clarify if owners don't have MS users
Give less confusing error when course owners do not have Microsoft users
associated with them. This has happened locally and been confusing, but
it will also give us a heads up if, for real customers, the way of
linking a Canvas user to Microsoft user is not working how they expect.

refs INTEROP-6556
flag=microsoft_group_enrollments_syncing

Test plan:
- Have a course with teachers but no users which correspond to users
  in our test tenant,
- Run the sync. It should fail with an error saying 'A Microsoft 365
  Group must have owners, and no users to the instructors of the Canvas
  course could be found on the Microsoft side'. This can be seen on the
  MicrosoftGroup in the last_error field.
- Run a full sync with valid teachers just to make sure it still works.

Change-Id: I9a8c4f4421d04ed4c17e541fffb2ce69154c9cdb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/263263
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Evan Battaglia <ebattaglia@instructure.com>
2021-04-21 22:47:12 +00:00
..
active_support/cache add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
address_book downgrade several expected error locations 2020-10-30 16:46:01 +00:00
api include users in conferences json 2021-04-20 23:49:43 +00:00
app_center add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
basic_lti Retry file uploads for basic outcomes 2021-04-13 22:32:28 +00:00
canvadocs add read-only mode for annotated document attempts 2021-03-30 22:46:49 +00:00
canvas Introduce release notes data model 2021-04-05 16:09:59 +00:00
cc apply course template to newly created courses 2021-04-05 19:56:05 +00:00
cdc_migration_testing/fixtures part 3.1: change lookup_id and resource_link_id to UUID datatype 2021-02-17 18:08:57 +00:00
data_fixup Set up replica identity index for EnrollmentState 2021-03-29 16:59:02 +00:00
external_auth_observation add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
feature_flags update all invocations of send_later and friends to new syntax 2020-10-30 19:13:54 +00:00
gradebook Add bulk override grade update endpoint 2020-12-15 19:23:46 +00:00
latex pull canvas::security out into a gem 2021-03-02 20:58:55 +00:00
lti add migration claim to LTI 1.3 launches 2021-04-14 19:34:24 +00:00
messageable_user add # frozen_string_literal: true for models 2020-10-28 22:08:12 +00:00
microsoft_sync MSFT Sync: clarify if owners don't have MS users 2021-04-21 22:47:12 +00:00
migration_helpers add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
outcomes Add ability to search outcomes 2021-03-26 20:25:35 +00:00
rake add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
reporting add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
schemas add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
services add UI updates to granular permissions for course files 2021-01-29 16:01:02 +00:00
sis always use jobs to update cached_due_dates 2021-03-26 22:34:54 +00:00
stubs add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
support_helpers update all invocations of send_later and friends to new syntax 2020-10-30 19:13:54 +00:00
tasks rename some things 2021-04-06 01:12:49 +00:00
turnitin Prevent duplicate submissions from TurnItIn 1.1 tool 2021-03-30 18:49:08 +00:00
user_content Remove new_file_url_rewriting feature flag 2021-04-02 19:07:27 +00:00
utils Show a maintenance window 2021-03-11 19:04:36 +00:00
account_services.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
address_book.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
anonymity.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
api.rb allow looking up accounts by uuid 2021-04-08 17:04:38 +00:00
api_route_set.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
api_scope_mapper_loader.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
asset_signature.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
assignment_override_applicator.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
assignment_util.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
authentication_methods.rb Revert "hackers4lyfe" 2021-03-05 00:24:58 +00:00
basic_lti.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
brand_config_helpers.rb ensure shard consistency for brand config caching 2020-10-29 19:48:21 +00:00
brand_config_regenerator.rb optimize several things about brand config regeneration 2021-02-17 23:18:35 +00:00
brandable_css.rb drop rails 5.2 2021-02-19 02:41:07 +00:00
browser_support.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
canvadocs.rb rename submission_type "annotated_document" to "student_annotation" 2021-04-13 19:02:31 +00:00
canvas.rb extract canvas::redis to canvas_cache 2021-03-02 14:38:55 +00:00
canvas_logger.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
canvas_yaml.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
cc.rb Initial work on getting zeitwerk loader running 2021-03-16 19:55:12 +00:00
content_licenses.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
content_notices.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
content_zipper.rb drop rails 5.2 2021-02-19 02:41:07 +00:00
conversation_batch_scrubber.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
conversation_helper.rb handle MRA in graphql audit log 2021-03-31 18:41:04 +00:00
copy_authorized_links.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
course_link_validator.rb bump sanitize to latest 2021-02-17 18:17:57 +00:00
csv_with_i18n.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
custom_validations.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
cuty_capt.rb add support for snapshot_service to cutycapt lib 2020-12-17 01:56:14 +00:00
dates_overridable.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
delayed_message_scrubber.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
delicious.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
differentiable_assignment.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
due_date_cacher.rb always use jobs to update cached_due_dates 2021-03-26 22:34:54 +00:00
dump_helper.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
duplicating_objects.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
effective_due_dates.rb drop rails 5.2 2021-02-19 02:41:07 +00:00
email_address_validator.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
enrollments_from_user_list.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
eportfolio_page.rb rename some things 2021-04-06 01:12:49 +00:00
external_feed_aggregator.rb external feed error handling with Canvas::Errors 2020-12-19 16:38:55 +00:00
external_statuses.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
feature.rb Quad-state feature flags 2020-12-15 23:18:33 +00:00
feature_flags.rb Fix allowed_on + root_opt_in to be sane 2021-01-12 22:08:22 +00:00
file_authenticator.rb thumbnails: pass original_url, and skipping cache 2020-12-17 01:22:45 +00:00
file_in_context.rb update all invocations of send_later and friends to new syntax 2020-10-30 19:13:54 +00:00
file_splitter.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
google_analytics_dimensions.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
google_docs_preview.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
grade_calculator.rb fix deadlock in GradeCalculator 2021-04-21 19:48:18 +00:00
gradebook_exporter.rb gradebook exporter: don't show scores for anonymized submissions 2021-01-11 20:31:49 +00:00
gradebook_grading_period_assignments.rb gradebook: include assignments not in any grading period 2020-11-17 20:22:51 +00:00
gradebook_importer.rb Handle imports with no override column 2021-02-24 18:54:11 +00:00
gradebook_settings_helpers.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
gradebook_user_ids.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
grading_period_helper.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
has_content_tags.rb update all invocations of send_later and friends to new syntax 2020-10-30 19:13:54 +00:00
host_url.rb automatically allow the configured domain 2021-02-17 17:56:29 +00:00
i18n_time_zone.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
imported_html_converter.rb bump sanitize to latest 2021-02-17 18:17:57 +00:00
inst_fs.rb wrap network errors to inst-fs in service exception 2021-01-14 18:17:37 +00:00
late_policy_applicator.rb update all invocations of send_later and friends to new syntax 2020-10-30 19:13:54 +00:00
latex.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
lazy_presumptuous_i18n_backend.rb some lazy-i18n fixes 2020-12-09 03:31:27 +00:00
learning_outcome_context.rb Initial import API with validations 2021-04-14 02:23:26 +00:00
local_cache.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
locale_selection.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
locked_for.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
logging_filter.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
login_hooks.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
math_man.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
message_bus.rb MessageBus integration vector 2021-04-15 22:14:38 +00:00
message_dispatcher.rb update to inst-jobs 1.0 via shims 2020-10-28 13:46:49 +00:00
message_scrubber.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
messageable_user.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
missing_policy_applicator.rb update all invocations of send_later and friends to new syntax 2020-10-30 19:13:54 +00:00
model_cache.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
moderation.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
multi_cache.rb ensure MultiCache has a TTL, even if falling back 2021-04-05 19:57:34 +00:00
must_view_module_progressor.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
mutable.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
net_ldap_extensions.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
notification_message_creator.rb use root_account association when possible 2021-04-21 16:18:57 +00:00
open_object.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
package_root.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
permissions.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
permissions_helper.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
plannable.rb update all invocations of send_later and friends to new syntax 2020-10-30 19:13:54 +00:00
planner_api_helper.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
planner_helper.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
progress_runner.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
pronouns.rb enable prounoun changes via api v1 users 2020-11-04 23:30:43 +00:00
quiz_math_data_fixup.rb bump sanitize to latest 2021-02-17 18:17:57 +00:00
request_cache.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
request_error.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
rubric_context.rb add soft-deletion to rubric associations 2021-01-20 16:25:16 +00:00
scope_filter.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
score_statistics_generator.rb update all invocations of send_later and friends to new syntax 2020-10-30 19:13:54 +00:00
scrypt_provider.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
search_term_helper.rb unify error report skipping strategies 2020-11-06 22:03:16 +00:00
send_to_stream.rb update all invocations of send_later and friends to new syntax 2020-10-30 19:13:54 +00:00
sentry_proxy.rb introduce error levels to exception handling 2020-10-29 02:04:14 +00:00
session_token.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
simple_stats.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
simple_tags.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
sis.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
sorts_assignments.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
ssl_common.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
stats.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
sticky_sis_fields.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
submission_list.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
submission_search.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
submittable.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
submittables_grading_period_protection.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
summary_message_consolidator.rb update all invocations of send_later and friends to new syntax 2020-10-30 19:13:54 +00:00
syslog_wrapper.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
temp_cache.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
text_helper.rb Show a maintenance window 2021-03-11 19:04:36 +00:00
time_zone_helper.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
timed_cache.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
token_scopes.rb expose Progress API as an LTI endpoint 2021-03-01 17:13:19 +00:00
token_scopes_helper.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
turnitin.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
turnitin_id.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
unzip_attachment.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
user_content.rb bump sanitize to latest 2021-02-17 18:17:57 +00:00
user_list.rb set root_account_ids for user_list 2021-03-30 15:59:30 +00:00
user_list_v2.rb provide reasonable user output for search violation 2021-01-04 17:13:53 +00:00
user_merge.rb add an `ordered` scope to acts_as_list, and use it 2021-03-31 21:48:10 +00:00
user_search.rb fix account course/user search for bigint out of range 2020-11-16 20:27:53 +00:00
uuid_helper.rb part 2: change lookup_id and resource_link_id to UUID datatype 2021-02-05 18:29:49 +00:00
vericite.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
visibility_plucking_helper.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
zip_extractor.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00