qalam_lti_provider_engine 2.0.9 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 07bc159f241d267bd6e42067a210324f18198742dc3e4965959b6b95065aebe7
4
- data.tar.gz: 5f962326d293321e6d9d229c6bd7fad1c57e4155efb03e416a540afaf30cda33
3
+ metadata.gz: ffc7781e66b1cae37477f81e36d212e3e52a115aa49e908a8954dda144d05ede
4
+ data.tar.gz: ee3ad8f02faa0314cea6192a5d264935d5b0ecb8d10b9622125acc4c635fd608
5
5
  SHA512:
6
- metadata.gz: 215e7707f1858ce5cb1c3302b324ce2b9f0e513a1b7781d171b8179f1a7d1bc5378797f268dfffd4c179445a9396f7c58b51bc976f76ff2fc9a82165ac06f54d
7
- data.tar.gz: a31aeb671814a4f142ebd99ccb2e19acb11334e5f35c7cfc384f50d80c7deca978f3a104239cf1d6de1328efac50f353498d233b16c7ef414799a43ffce3b44f
6
+ metadata.gz: d180b3146931ff792403020def0d9b562dedd791fd3ec5f869199736d11501390675b9003c4701b1f0354ce2477808ce23c8e565749df339b79858efcd57b86c
7
+ data.tar.gz: d5cd47670bef6e30fb0f4764e7c4c509aa21083edc8afd44aaffce076f2caad9d90dd0b2c67d0b96bd2816b2702b75a9fab5f0e4fc3b8e42b8a1998fc3dd8bd3
@@ -4,23 +4,20 @@ require 'colorize'
4
4
  module LtiProvider
5
5
  class LtiController < LtiProvider::LtiApplicationController
6
6
  skip_before_action :require_lti_launch
7
- # skip_before_action :verify_authenticity_token, only: :launch
7
+ skip_before_action :verify_authenticity_token, only: :launch, if: :digital_library?
8
8
 
9
9
  def launch
10
10
  tool_key = params['oauth_consumer_key']
11
- tool_secret = ((ToolLtiKey.table_exists? && ToolLtiKey.find_by(key: tool_key, canvas_url: canvas_url_domain)&.secret) or (LtiProvider::Config.secret))
12
-
13
- # puts tool_key.inspect.green
14
- # puts LtiProvider::Config.secret.inspect.red
15
- # puts (ToolLtiKey.table_exists? && ToolLtiKey.find_by(key: tool_key, canvas_url: canvas_url_domain)&.secret).inspect.red
16
- # puts tool_secret.inspect.green
11
+ if canvas_url_domain && ToolLtiKey.table_exists?
12
+ tool_lti_key = ToolLtiKey.where(key: tool_key).where('lower(canvas_url) LIKE :q', q: "%#{canvas_url_domain.downcase}%" ).first
13
+ tool_secret = tool_lti_key&.secret or LtiProvider::Config.secret
14
+ else
15
+ tool_secret = LtiProvider::Config.secret
16
+ end
17
17
 
18
18
  provider = IMS::LTI::ToolProvider.new(tool_key, tool_secret, params)
19
19
  launch = Launch.initialize_from_request(provider, request)
20
20
 
21
- # puts launch.inspect.red
22
- # puts request.origin.inspect.green
23
- # puts request.base_url.inspect.yellow
24
21
  if !launch.valid_provider?
25
22
  msg = "#{launch.lti_errormsg} Please be sure you are launching this tool from the link provided in Qalam."
26
23
  return show_error msg
@@ -34,7 +31,7 @@ module LtiProvider
34
31
  end
35
32
  ### END ###
36
33
  else
37
- # if params[:launch_tool] && params[:launch_tool] == 'digital_library'
34
+ # if params[:qalam_url] && params[:launch_tool] == 'digital_library'
38
35
  # redirect_to main_app.root_path and return
39
36
  # else
40
37
  return show_error "Unable to launch #{LtiProvider::XmlConfig.tool_title}. Please check your External Tools configuration and try again."
@@ -109,5 +106,9 @@ module LtiProvider
109
106
  return domain
110
107
  end
111
108
  end
109
+
110
+ def digital_library?
111
+ session[:qalam_url] ? true : false
112
+ end
112
113
  end
113
114
  end
@@ -88,4 +88,4 @@ module LtiProvider
88
88
  render plain: "Unable to process request", status: 406
89
89
  end
90
90
  end
91
- end
91
+ end
@@ -1,4 +1,5 @@
1
1
  require 'yaml'
2
+ require 'colorize'
2
3
 
3
4
  module LtiProvider
4
5
  module LtiConfig
@@ -13,12 +14,12 @@ module LtiProvider
13
14
  def self.setup!
14
15
  config = LtiProvider::Config
15
16
  if File.exists?(config_file)
16
- Rails.logger.info "Initializing LTI key and secret using configuration in #{config_file}"
17
+ Rails.logger.info "Initializing LTI key and secret using configuration in #{config_file}".green
17
18
  load_config.each do |k,v|
18
19
  config.send("#{k}=", v)
19
20
  end
20
21
  elsif ENV['LTI_KEY'].present? && ENV['LTI_SECRET'].present?
21
- Rails.logger.info "Initializing LTI key and secret using environment vars LTI_KEY and LTI_SECRET"
22
+ Rails.logger.info "Initializing LTI key and secret using environment vars LTI_KEY and LTI_SECRET".green
22
23
  config.key = ENV['LTI_KEY']
23
24
  config.secret = ENV['LTI_SECRET']
24
25
  config.require_canvas = !!ENV['LTI_REQUIRE_CANVAS']
@@ -1,3 +1,6 @@
1
+ require 'yaml'
2
+ require 'colorize'
3
+
1
4
  module LtiProvider
2
5
  module LtiXmlConfig
3
6
  def self.load_config
@@ -11,7 +14,7 @@ module LtiProvider
11
14
  def self.setup!
12
15
  config = LtiProvider::XmlConfig
13
16
  if File.exists?(config_file)
14
- Rails.logger.info "Initializing LTI XML config using configuration in #{config_file}"
17
+ Rails.logger.info "Initializing LTI XML config using configuration in #{config_file}".green
15
18
  load_config.each do |k,v|
16
19
  config.send("#{k}=", v)
17
20
  end
@@ -1,3 +1,3 @@
1
1
  module LtiProvider
2
- VERSION = "2.0.9"
2
+ VERSION = "2.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qalam_lti_provider_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.9
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Donahue
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2021-08-29 00:00:00.000000000 Z
14
+ date: 2021-08-30 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -47,6 +47,20 @@ dependencies:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
49
  version: '0'
50
+ - !ruby/object:Gem::Dependency
51
+ name: colorize
52
+ requirement: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
50
64
  - !ruby/object:Gem::Dependency
51
65
  name: sqlite3
52
66
  requirement: !ruby/object:Gem::Requirement