coalescing_panda 1.2.2 → 1.3.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 +4 -4
- data/app/controllers/coalescing_panda/lti_controller.rb +10 -1
- data/lib/coalescing_panda/controller_helpers.rb +1 -1
- data/lib/coalescing_panda/version.rb +1 -1
- data/lib/coalescing_panda.rb +9 -0
- data/spec/controllers/coalescing_panda/lti_controller_spec.rb +11 -2
- data/spec/dummy/log/test.log +0 -1834
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2c34217f412e2564632c2d78755b09a08304e44
|
4
|
+
data.tar.gz: 978545da6add23c795c1b09c4c69c0a754abe522
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7450485d74c088ecda1bb8cc2097ced45117934a9306c1a40c51057ea7692e5d184bf0f2b9fd53be1cfeb13f27c36e1f6293fa2dfadd801c5bc5047c131c3d2
|
7
|
+
data.tar.gz: ce217b7979c44852e093c650199a3a28f91ff6502d0a55b4f6ae367602e807eb4ddf3eaf346485280ce8400b60c035b5371ea5cf54bbdaafd0a40755345a9d10
|
@@ -6,6 +6,13 @@ module CoalescingPanda
|
|
6
6
|
def lti_config
|
7
7
|
lti_options = CoalescingPanda.lti_options
|
8
8
|
lti_nav = CoalescingPanda.lti_paths
|
9
|
+
lti_environments = CoalescingPanda.lti_environments
|
10
|
+
|
11
|
+
if lti_environments.empty?
|
12
|
+
render text: 'Domains must be set in lti_environments'
|
13
|
+
return
|
14
|
+
end
|
15
|
+
|
9
16
|
lti_nav[:course][:text] = params[:course_navigation_label] if params[:course_navigation_label].present?
|
10
17
|
lti_nav[:account][:text] = params[:account_navigation_label] if params[:account_navigation_label].present?
|
11
18
|
platform = 'canvas.instructure.com'
|
@@ -24,6 +31,8 @@ module CoalescingPanda
|
|
24
31
|
tc.set_ext_param(platform, setting_name(k.to_s), ext_params(v))
|
25
32
|
end
|
26
33
|
|
34
|
+
tc.set_ext_param(platform, :environments, lti_environments)
|
35
|
+
|
27
36
|
#strip the launch url
|
28
37
|
xml = tc.to_xml
|
29
38
|
xml = xml.sub(/<blti:launch_url>.*<\/blti:launch_url>/, '') if lti_options[:launch_route].blank?
|
@@ -60,4 +69,4 @@ module CoalescingPanda
|
|
60
69
|
end
|
61
70
|
|
62
71
|
end
|
63
|
-
end
|
72
|
+
end
|
@@ -74,7 +74,7 @@ module CoalescingPanda
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def have_session?
|
77
|
-
if params['
|
77
|
+
if params['tool_consumer_instance_guid'] && session['user_id'] != params['user_id']
|
78
78
|
reset_session
|
79
79
|
logger.info("resetting session params")
|
80
80
|
session['user_id'] = params['user_id']
|
data/lib/coalescing_panda.rb
CHANGED
@@ -15,6 +15,7 @@ module CoalescingPanda
|
|
15
15
|
@@lti_navigation = {}
|
16
16
|
@@staged_navigation = {}
|
17
17
|
@@lti_options = {}
|
18
|
+
@@lti_environments = {}
|
18
19
|
|
19
20
|
def self.lti_options= lti_options
|
20
21
|
@@lti_options = lti_options
|
@@ -24,6 +25,14 @@ module CoalescingPanda
|
|
24
25
|
@@lti_options.deep_dup
|
25
26
|
end
|
26
27
|
|
28
|
+
def self.lti_environments=(lti_environments)
|
29
|
+
@@lti_environments = lti_environments
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.lti_environments
|
33
|
+
@@lti_environments.deep_dup
|
34
|
+
end
|
35
|
+
|
27
36
|
def self.register_navigation(navigation)
|
28
37
|
@@lti_navigation[navigation] ||= {}
|
29
38
|
end
|
@@ -4,6 +4,10 @@ describe CoalescingPanda::LtiController, type: :controller do
|
|
4
4
|
routes { CoalescingPanda::Engine.routes }
|
5
5
|
|
6
6
|
describe '#lti_config' do
|
7
|
+
before :each do
|
8
|
+
CoalescingPanda.class_variable_set(:@@lti_navigation, {})
|
9
|
+
CoalescingPanda.lti_environments = { test_domain: 'test' }
|
10
|
+
end
|
7
11
|
|
8
12
|
it 'generates lti xml config'do
|
9
13
|
controller.main_app.stub(:test_action_url) {'foo'}
|
@@ -31,8 +35,14 @@ describe CoalescingPanda::LtiController, type: :controller do
|
|
31
35
|
account_nav.at_xpath('lticm:property[@name="url"]').text.should == 'foo'
|
32
36
|
end
|
33
37
|
|
34
|
-
|
38
|
+
it 'includes environment information' do
|
39
|
+
get(:lti_config)
|
40
|
+
xml = Nokogiri::XML(response.body)
|
41
|
+
environments = xml.at_xpath('//lticm:options[@name="environments"]')
|
42
|
+
environments.at_xpath('lticm:property[@name="test_domain"]').text.should == 'test'
|
43
|
+
end
|
35
44
|
|
45
|
+
end
|
36
46
|
|
37
47
|
it 'get the url, from the action string' do
|
38
48
|
controller.main_app.stub(:test_action_url) {'foo'}
|
@@ -40,5 +50,4 @@ describe CoalescingPanda::LtiController, type: :controller do
|
|
40
50
|
options[:url].should == 'foo'
|
41
51
|
end
|
42
52
|
|
43
|
-
|
44
53
|
end
|