Module: DceLti::SessionHelpers

Included in:
SessionsController
Defined in:
app/concerns/dce_lti/session_helpers.rb

Instance Method Summary collapse

Instance Method Details

#captured_attributes_from(tool_provider) ⇒ Object



40
41
42
43
44
# File 'app/concerns/dce_lti/session_helpers.rb', line 40

def captured_attributes_from(tool_provider)
  Engine.config.copy_launch_attributes_to_session.inject({}) do |attributes, att|
    attributes.merge(att => tool_provider.send(att))
  end
end

#consumer_keyObject



13
14
15
# File 'app/concerns/dce_lti/session_helpers.rb', line 13

def consumer_key
  find_from_config(:consumer_key)
end

#consumer_secretObject



17
18
19
# File 'app/concerns/dce_lti/session_helpers.rb', line 17

def consumer_secret
  find_from_config(:consumer_secret)
end

#find_from_config(attribute) ⇒ Object



21
22
23
24
25
26
27
28
# File 'app/concerns/dce_lti/session_helpers.rb', line 21

def find_from_config(attribute)
  value = Engine.config.send(attribute)
  if value.respond_to?(:call)
    value.call(launch_params)
  else
    value
  end
end

#launch_paramsObject



9
10
11
# File 'app/concerns/dce_lti/session_helpers.rb', line 9

def launch_params
  params.reject{ |k,v| ['controller','action'].include? k }
end

#redirect_after_successful_authObject



30
31
32
# File 'app/concerns/dce_lti/session_helpers.rb', line 30

def redirect_after_successful_auth
  Engine.config.redirect_after_successful_auth.call(self)
end

#tool_providerObject



34
35
36
37
38
# File 'app/concerns/dce_lti/session_helpers.rb', line 34

def tool_provider
  @tool_provider ||= IMS::LTI::ToolProvider.new(
    consumer_key, consumer_secret, launch_params
  )
end

#valid_lti_request?(request) ⇒ Boolean

Returns:

  • (Boolean)


3
4
5
6
7
# File 'app/concerns/dce_lti/session_helpers.rb', line 3

def valid_lti_request?(request)
  tool_provider.valid_request?(request) &&
    Nonce.valid?(tool_provider.oauth_nonce) &&
    TimestampValidator.valid?(tool_provider.oauth_timestamp)
end