send better contexts to sis_pseudonym

fixes CANVAS-6YGK in sentry

test plan
 - specs should pass

Change-Id: If14754c714f67a67378663bc869191536fac4454
Reviewed-on: https://gerrit.instructure.com/189180
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
This commit is contained in:
Rob Orton 2019-04-14 13:03:55 -06:00
parent c9b1871ed9
commit 9c520721ee
2 changed files with 2 additions and 1 deletions

View File

@ -315,7 +315,7 @@ class Message < ActiveRecord::Base
context = context.context if context.respond_to?(:context)
context = context.account if context.respond_to?(:account)
context = context.root_account if context.respond_to?(:root_account)
if context
if context && context.respond_to?(:root_account)
p = SisPseudonym.for(user, context, type: :implicit, require_sis: false)
context = p.account if p
else

View File

@ -19,6 +19,7 @@ class SisPseudonym
# type: :exact, :trusted, or :implicit
def self.for(user, context, type: :exact, require_sis: true, include_deleted: false)
raise ArgumentError("type must be :exact, :trusted, or :implicit") unless [:exact, :trusted, :implicit].include?(type)
raise ArgumentError("context must respond to .root_account") unless context.respond_to?(:root_account)
self.new(user, context, type, require_sis, include_deleted).pseudonym
end