lti_skydrive 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/skydrive/ember_app.js +18 -6
- data/app/assets/stylesheets/skydrive/application.css +1 -0
- data/app/assets/stylesheets/skydrive/custom.css +6 -0
- data/app/controllers/skydrive/launch_controller.rb +5 -5
- data/app/views/layouts/skydrive/error.html.erb +23 -0
- data/lib/skydrive/file.rb +1 -1
- data/lib/skydrive/version.rb +1 -1
- data/test/dummy/log/development.log +58 -0
- metadata +4 -4
- data/test/dummy/tmp/pids/server.pid +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7bd921706c714324e9418139cb0703c3f9586e3f
|
4
|
+
data.tar.gz: e8d14137930c1c7de4bb11dd8c6bee694f3e4d39
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a465e4b70b352f3fd1f27a6ff1d77df2772314e628f722031e23dbe1fa2c47339190d1778a14f60bd7921dceaf663db78e96269f229aa622dd8eef42457b92b
|
7
|
+
data.tar.gz: 00474a7e21e7f4d385052846a7e50a7a92a5dc166029f43ed2bbcc32f364d52dea33b80e671e59d70006b617c1b978b3aeddaaeb4cc8c8ec74f7e3585b9f7d49
|
@@ -126,10 +126,11 @@ var AuthManager = Ember.Object.extend({
|
|
126
126
|
|
127
127
|
// Determine if the user is currently authenticated.
|
128
128
|
isAuthenticated: function() {
|
129
|
-
return !Ember.isEmpty(this.get('apiKey.accessToken'));
|
129
|
+
return (!Ember.isEmpty(this.get('apiKey.accessToken')) && !this.get('isAuthenticating'));
|
130
130
|
},
|
131
131
|
|
132
132
|
authenticateWithCode: function(code) {
|
133
|
+
this.set('isAuthenticating', true);
|
133
134
|
$.post('oauth2/token', {code: code})
|
134
135
|
.always($.proxy(function(response) {
|
135
136
|
if(!Ember.isEmpty(response.api_key)){
|
@@ -137,14 +138,17 @@ var AuthManager = Ember.Object.extend({
|
|
137
138
|
} else {
|
138
139
|
this.authenticateWithCookie();
|
139
140
|
}
|
141
|
+
this.set('isAuthenticating', false);
|
140
142
|
}, this));
|
141
143
|
},
|
142
144
|
|
143
145
|
authenticateWithCookie: function() {
|
146
|
+
this.set('isAuthenticating', true);
|
144
147
|
var accessToken = $.cookie('access_token');
|
145
148
|
if (!Ember.isEmpty(accessToken)) {
|
146
149
|
this.authenticate(accessToken);
|
147
150
|
}
|
151
|
+
this.set('isAuthenticating', false);
|
148
152
|
},
|
149
153
|
|
150
154
|
// Authenticate the user. Once they are authenticated, set the access token to be submitted with all
|
@@ -278,18 +282,26 @@ var FilesRoute = AuthenticatedRoute.extend({
|
|
278
282
|
setupController: function(controller, model) {
|
279
283
|
var uri = model.uri;
|
280
284
|
path = Ember.ENV.CONFIG.root_path;
|
285
|
+
controller.set('isLoading', true);
|
281
286
|
var skydriveAuthorized = Ember.$.getJSON(path + 'api/v1/skydrive_authorized').then(
|
282
287
|
function() {
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
+
Ember.$.getJSON(path + 'api/v1/files/' + uri).then(
|
289
|
+
function(data) {
|
290
|
+
controller.set('model', data);
|
291
|
+
controller.set('isLoading', false);
|
292
|
+
},
|
293
|
+
function(jqxhr) {
|
294
|
+
controller.set('model', {});
|
295
|
+
controller.set('authRedirectUrl', jqxhr.responseText);
|
296
|
+
controller.set('isLoading', false);
|
297
|
+
}
|
298
|
+
);
|
288
299
|
controller.set('authRedirectUrl', null);
|
289
300
|
},
|
290
301
|
function(jqxhr) {
|
291
302
|
controller.set('model', {});
|
292
303
|
controller.set('authRedirectUrl', jqxhr.responseText);
|
304
|
+
controller.set('isLoading', false);
|
293
305
|
}
|
294
306
|
);
|
295
307
|
},
|
@@ -19,13 +19,13 @@ module Skydrive
|
|
19
19
|
tp = IMS::LTI::ToolProvider.new(key, secret, params)
|
20
20
|
|
21
21
|
if !key
|
22
|
-
tp.lti_errorlog = "
|
22
|
+
tp.lti_errorlog = "Invalid consumer key or secret"
|
23
23
|
elsif !secret
|
24
24
|
tp.lti_errorlog = "Consumer key wasn't recognized"
|
25
25
|
elsif !tp.valid_request?(request)
|
26
26
|
tp.lti_errorlog = "The OAuth signature was invalid"
|
27
27
|
elsif Time.now.utc.to_i - tp.request_oauth_timestamp.to_i > 120
|
28
|
-
tp.lti_errorlog = "Your request is too old
|
28
|
+
tp.lti_errorlog = "Your request is too old"
|
29
29
|
end
|
30
30
|
|
31
31
|
#
|
@@ -47,18 +47,18 @@ module Skydrive
|
|
47
47
|
def basic_launch
|
48
48
|
tp = tool_provider
|
49
49
|
if tp.lti_errorlog
|
50
|
-
render text: tp.lti_errorlog, status: 400
|
50
|
+
render text: tp.lti_errorlog, status: 400, layout: "skydrive/error"
|
51
51
|
return
|
52
52
|
end
|
53
53
|
|
54
54
|
email = tp.lis_person_contact_email_primary
|
55
55
|
unless email.present?
|
56
|
-
render text: "Missing email information"
|
56
|
+
render text: "Missing email information", layout: "skydrive/error"
|
57
57
|
return
|
58
58
|
end
|
59
59
|
|
60
60
|
unless client_domain = tp.get_custom_param('sharepoint_client_domain')
|
61
|
-
render text: "Missing sharepoint client domain", status: 400
|
61
|
+
render text: "Missing sharepoint client domain", status: 400, layout: "skydrive/error"
|
62
62
|
return
|
63
63
|
end
|
64
64
|
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<title>Sky Drive</title>
|
5
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
6
|
+
<%= stylesheet_link_tag "skydrive/font-awesome/font-awesome.min.css", media: "all" %>
|
7
|
+
<%= stylesheet_link_tag "skydrive/application.css", media: "all" %>
|
8
|
+
<%= javascript_include_tag "skydrive/application.js" %>
|
9
|
+
<%= csrf_meta_tags %>
|
10
|
+
<title>Sky Drive</title>
|
11
|
+
</head>
|
12
|
+
<body>
|
13
|
+
|
14
|
+
<nav class="top-bar">
|
15
|
+
<img src="https://p.sfx.ms/images/SkyDriveLogoLight.png" />
|
16
|
+
</nav>
|
17
|
+
|
18
|
+
<div class="error-instructions">
|
19
|
+
<%= yield %>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
</body>
|
23
|
+
</html>
|
data/lib/skydrive/file.rb
CHANGED
data/lib/skydrive/version.rb
CHANGED
@@ -8403,3 +8403,61 @@ Processing by Skydrive::FilesController#download as */*
|
|
8403
8403
|
Rendered text template (0.0ms)
|
8404
8404
|
Sent data (0.6ms)
|
8405
8405
|
Completed 200 OK in 380ms (Views: 0.4ms | ActiveRecord: 0.4ms)
|
8406
|
+
|
8407
|
+
|
8408
|
+
Started GET "/api/v1/lti_apps?access_token=16e255ac9df64d9b54ea387555cfce6f&offset=0" for 127.0.0.1 at 2014-01-15 11:13:05 -0700
|
8409
|
+
|
8410
|
+
ActionController::RoutingError (No route matches [GET] "/api/v1/lti_apps"):
|
8411
|
+
actionpack (4.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
|
8412
|
+
actionpack (4.0.2) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
|
8413
|
+
railties (4.0.2) lib/rails/rack/logger.rb:38:in `call_app'
|
8414
|
+
railties (4.0.2) lib/rails/rack/logger.rb:20:in `block in call'
|
8415
|
+
activesupport (4.0.2) lib/active_support/tagged_logging.rb:67:in `block in tagged'
|
8416
|
+
activesupport (4.0.2) lib/active_support/tagged_logging.rb:25:in `tagged'
|
8417
|
+
activesupport (4.0.2) lib/active_support/tagged_logging.rb:67:in `tagged'
|
8418
|
+
railties (4.0.2) lib/rails/rack/logger.rb:20:in `call'
|
8419
|
+
actionpack (4.0.2) lib/action_dispatch/middleware/request_id.rb:21:in `call'
|
8420
|
+
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
|
8421
|
+
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
|
8422
|
+
activesupport (4.0.2) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
|
8423
|
+
rack (1.5.2) lib/rack/lock.rb:17:in `call'
|
8424
|
+
actionpack (4.0.2) lib/action_dispatch/middleware/static.rb:64:in `call'
|
8425
|
+
rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
|
8426
|
+
railties (4.0.2) lib/rails/engine.rb:511:in `call'
|
8427
|
+
railties (4.0.2) lib/rails/application.rb:97:in `call'
|
8428
|
+
rack (1.5.2) lib/rack/lock.rb:17:in `call'
|
8429
|
+
rack (1.5.2) lib/rack/content_length.rb:14:in `call'
|
8430
|
+
rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
|
8431
|
+
/Users/brad/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
|
8432
|
+
/Users/brad/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
|
8433
|
+
/Users/brad/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'
|
8434
|
+
|
8435
|
+
|
8436
|
+
Rendered /Users/brad/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.0ms)
|
8437
|
+
Rendered /Users/brad/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb (1.1ms)
|
8438
|
+
Rendered /Users/brad/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb (1.9ms)
|
8439
|
+
Rendered /Users/brad/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/routes/_table.html.erb (40.6ms)
|
8440
|
+
Rendered /Users/brad/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (100.6ms)
|
8441
|
+
|
8442
|
+
|
8443
|
+
Started GET "/assets/skydrive/skydrive_icon.png" for 127.0.0.1 at 2014-01-15 11:13:35 -0700
|
8444
|
+
|
8445
|
+
|
8446
|
+
Started POST "/skydrive/launch" for 127.0.0.1 at 2014-01-15 11:13:38 -0700
|
8447
|
+
Processing by Skydrive::LaunchController#basic_launch as HTML
|
8448
|
+
Parameters: {"oauth_consumer_key"=>"fe240219-0559-4cb8-933d-ad7ef572005c", "oauth_signature_method"=>"HMAC-SHA1", "oauth_timestamp"=>"1389809618", "oauth_nonce"=>"6g0Lm9i6LZTr80aUEWYRsfPyLBOOv4xwGBfMiuaGY", "oauth_version"=>"1.0", "context_id"=>"d2be670fbe0876dc2e5dde5a1fbb35982fe20f9f", "context_label"=>"LTI", "context_title"=>"LTI", "custom_canvas_api_domain"=>"localhost:3000", "custom_canvas_assignment_id"=>"7", "custom_canvas_course_id"=>"1", "custom_canvas_enrollment_state"=>"active", "custom_canvas_user_id"=>"1", "custom_canvas_user_login_id"=>"brad", "custom_sharepoint_client_domain"=>"instructure", "ext_content_intended_use"=>"homework", "ext_content_return_types"=>"file", "ext_content_return_url"=>"http://localhost:3000/external_content/success/external_tool", "launch_presentation_document_target"=>"iframe", "launch_presentation_height"=>"600", "launch_presentation_locale"=>"en", "launch_presentation_return_url"=>"http://localhost:3000/external_content/success/external_tool", "launch_presentation_width"=>"700", "lis_person_contact_email_primary"=>"brad", "lis_person_name_family"=>"", "lis_person_name_full"=>"brad", "lis_person_name_given"=>"brad", "lti_message_type"=>"basic-lti-launch-request", "lti_version"=>"LTI-1p0", "oauth_callback"=>"about:blank", "resource_link_id"=>"d2be670fbe0876dc2e5dde5a1fbb35982fe20f9f", "resource_link_title"=>"SkydrivePro", "roles"=>"Instructor,Learner,urn:lti:instrole:ims/lis/Administrator", "tool_consumer_info_product_family_code"=>"canvas", "tool_consumer_info_version"=>"cloud", "tool_consumer_instance_contact_email"=>"canvas@example.com", "tool_consumer_instance_guid"=>"a4a7c6f7128c3946d872188732e68cc877bfe245.localhost:3000", "tool_consumer_instance_name"=>"test", "user_id"=>"f3e8abfd08ea30734fdb78d4503523c0f2f35f12", "user_image"=>"https://secure.gravatar.com/avatar/884354eb56db3323cbce63a5e177ecac?s=50&d=https%3A%2F%2Fcanvas.instructure.com%2Fimages%2Fmessages%2Favatar-50.png", "oauth_signature"=>"+DR6BYOnWXCTSC0/TYLt6WJXjjQ="}
|
8449
|
+
[1m[35mSkydrive::LtiKey Load (0.2ms)[0m SELECT "skydrive_lti_keys".* FROM "skydrive_lti_keys" WHERE "skydrive_lti_keys"."key" = 'fe240219-0559-4cb8-933d-ad7ef572005c' ORDER BY "skydrive_lti_keys"."id" ASC LIMIT 1
|
8450
|
+
Rendered text template (0.0ms)
|
8451
|
+
Completed 400 Bad Request in 2ms (Views: 0.7ms | ActiveRecord: 0.2ms)
|
8452
|
+
|
8453
|
+
|
8454
|
+
Started GET "/assets/skydrive/skydrive_icon.png" for 127.0.0.1 at 2014-01-15 11:14:04 -0700
|
8455
|
+
|
8456
|
+
|
8457
|
+
Started POST "/skydrive/launch" for 127.0.0.1 at 2014-01-15 11:14:07 -0700
|
8458
|
+
Processing by Skydrive::LaunchController#basic_launch as HTML
|
8459
|
+
Parameters: {"oauth_consumer_key"=>"fe240219-0559-4cb8-933d-ad7ef572005c", "oauth_signature_method"=>"HMAC-SHA1", "oauth_timestamp"=>"1389809647", "oauth_nonce"=>"qU7Rdmz7nWi5plLaqOKluyRBF3h3BcTBMRbzbBdXTa8", "oauth_version"=>"1.0", "context_id"=>"d2be670fbe0876dc2e5dde5a1fbb35982fe20f9f", "context_label"=>"LTI", "context_title"=>"LTI", "custom_canvas_api_domain"=>"localhost:3000", "custom_canvas_assignment_id"=>"7", "custom_canvas_course_id"=>"1", "custom_canvas_enrollment_state"=>"active", "custom_canvas_user_id"=>"1", "custom_canvas_user_login_id"=>"brad", "custom_sharepoint_client_domain"=>"instructure", "ext_content_intended_use"=>"homework", "ext_content_return_types"=>"file", "ext_content_return_url"=>"http://localhost:3000/external_content/success/external_tool", "launch_presentation_document_target"=>"iframe", "launch_presentation_height"=>"600", "launch_presentation_locale"=>"en", "launch_presentation_return_url"=>"http://localhost:3000/external_content/success/external_tool", "launch_presentation_width"=>"700", "lis_person_contact_email_primary"=>"brad", "lis_person_name_family"=>"", "lis_person_name_full"=>"brad", "lis_person_name_given"=>"brad", "lti_message_type"=>"basic-lti-launch-request", "lti_version"=>"LTI-1p0", "oauth_callback"=>"about:blank", "resource_link_id"=>"d2be670fbe0876dc2e5dde5a1fbb35982fe20f9f", "resource_link_title"=>"SkydrivePro", "roles"=>"Instructor,Learner,urn:lti:instrole:ims/lis/Administrator", "tool_consumer_info_product_family_code"=>"canvas", "tool_consumer_info_version"=>"cloud", "tool_consumer_instance_contact_email"=>"canvas@example.com", "tool_consumer_instance_guid"=>"a4a7c6f7128c3946d872188732e68cc877bfe245.localhost:3000", "tool_consumer_instance_name"=>"test", "user_id"=>"f3e8abfd08ea30734fdb78d4503523c0f2f35f12", "user_image"=>"https://secure.gravatar.com/avatar/884354eb56db3323cbce63a5e177ecac?s=50&d=https%3A%2F%2Fcanvas.instructure.com%2Fimages%2Fmessages%2Favatar-50.png", "oauth_signature"=>"6g65vS/tXIo5mGxe26G1fQA3VNc="}
|
8460
|
+
[1m[36mSkydrive::LtiKey Load (0.2ms)[0m [1mSELECT "skydrive_lti_keys".* FROM "skydrive_lti_keys" WHERE "skydrive_lti_keys"."key" = 'fe240219-0559-4cb8-933d-ad7ef572005c' ORDER BY "skydrive_lti_keys"."id" ASC LIMIT 1[0m
|
8461
|
+
Rendered text template (0.0ms)
|
8462
|
+
Completed 400 Bad Request in 2ms (Views: 0.3ms | ActiveRecord: 0.2ms)
|
8463
|
+
[1m[36mSkydrive::LtiKey Load (0.1ms)[0m [1mSELECT "skydrive_lti_keys".* FROM "skydrive_lti_keys" ORDER BY "skydrive_lti_keys"."id" DESC LIMIT 1[0m
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lti_skydrive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brad Humphrey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -138,6 +138,7 @@ files:
|
|
138
138
|
- app/assets/javascripts/skydrive/vendor/jquery.js
|
139
139
|
- app/assets/stylesheets/skydrive/app.css
|
140
140
|
- app/assets/stylesheets/skydrive/application.css
|
141
|
+
- app/assets/stylesheets/skydrive/custom.css
|
141
142
|
- app/assets/stylesheets/skydrive/font-awesome/font-awesome.min.css
|
142
143
|
- app/assets/stylesheets/skydrive/normalize.css
|
143
144
|
- app/controllers/skydrive/api_keys_controller.rb
|
@@ -156,6 +157,7 @@ files:
|
|
156
157
|
- app/serializers/api_key_serializer.rb
|
157
158
|
- app/serializers/user_serializer.rb
|
158
159
|
- app/views/layouts/skydrive/application.html.erb
|
160
|
+
- app/views/layouts/skydrive/error.html.erb
|
159
161
|
- app/views/skydrive/ember/index.html.erb
|
160
162
|
- config/initializers/sharepoint.rb
|
161
163
|
- config/routes.rb
|
@@ -353,7 +355,6 @@ files:
|
|
353
355
|
- test/dummy/tmp/cache/assets/production/sprockets/f48290aae486ea863a9f456ba96443e9
|
354
356
|
- test/dummy/tmp/cache/assets/production/sprockets/f7cbd26ba1d28d48de824f0e94586655
|
355
357
|
- test/dummy/tmp/cache/assets/production/sprockets/fa078ac6abaaee94445294c5a7c6d793
|
356
|
-
- test/dummy/tmp/pids/server.pid
|
357
358
|
- test/helpers/skydrive/ember_helper_test.rb
|
358
359
|
- test/integration/navigation_test.rb
|
359
360
|
- test/skydrive_test.rb
|
@@ -555,7 +556,6 @@ test_files:
|
|
555
556
|
- test/dummy/tmp/cache/assets/production/sprockets/f48290aae486ea863a9f456ba96443e9
|
556
557
|
- test/dummy/tmp/cache/assets/production/sprockets/f7cbd26ba1d28d48de824f0e94586655
|
557
558
|
- test/dummy/tmp/cache/assets/production/sprockets/fa078ac6abaaee94445294c5a7c6d793
|
558
|
-
- test/dummy/tmp/pids/server.pid
|
559
559
|
- test/helpers/skydrive/ember_helper_test.rb
|
560
560
|
- test/integration/navigation_test.rb
|
561
561
|
- test/skydrive_test.rb
|
@@ -1 +0,0 @@
|
|
1
|
-
15608
|