lti_skydrive 0.0.4 → 0.0.5

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
  SHA1:
3
- metadata.gz: ede3590eb9ebc419a81536127f904bd2135d6da8
4
- data.tar.gz: fce3f92328a9efb6e75e63c12dbd2933ed16dbf0
3
+ metadata.gz: 7bd921706c714324e9418139cb0703c3f9586e3f
4
+ data.tar.gz: e8d14137930c1c7de4bb11dd8c6bee694f3e4d39
5
5
  SHA512:
6
- metadata.gz: 39a6613cf257ce176bda999705dfd96b1caef79e9c3d35286c328416fa41370bcbcbab784d8480f2243e300762a57143459c638ed472768100304a648e4f19e1
7
- data.tar.gz: dafdbaed8579c7887ee391a15fc5e3d9567633b49d15afe48e7fe8edb074765e270259403231fa2d9c8f471c02804da9179561b8db54683a109c0616113e6e98
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
- controller.set('isLoading', true);
284
- Ember.$.getJSON(path + 'api/v1/files/' + uri).then(function(data) {
285
- controller.set('model', data);
286
- controller.set('isLoading', false);
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
  },
@@ -1,4 +1,5 @@
1
1
  /* ...
2
2
  *= require ./normalize
3
3
  *= require ./app
4
+ *= require ./custom
4
5
  */
@@ -0,0 +1,6 @@
1
+ div.error-instructions {
2
+ padding: 20px;
3
+ text-align: center;
4
+ background-color: #efefef;
5
+ margin-top: 65px;
6
+ }
@@ -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 = "No consumer key"
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
@@ -39,7 +39,7 @@ module Skydrive
39
39
  self.is_embeddable = false
40
40
  end
41
41
  else
42
- self.icon = "/skydrive/images/icon-file.png"
42
+ self.icon = "/assets/skydrive/icon-file.png"
43
43
  self.kind = ''
44
44
  self.suffix = self.name.split('.').try(:last) || ''
45
45
  self.is_embeddable = false
@@ -1,3 +1,3 @@
1
1
  module Skydrive
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -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
+ Skydrive::LtiKey Load (0.2ms) 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
+ Skydrive::LtiKey Load (0.2ms) 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
8461
+ Rendered text template (0.0ms)
8462
+ Completed 400 Bad Request in 2ms (Views: 0.3ms | ActiveRecord: 0.2ms)
8463
+ Skydrive::LtiKey Load (0.1ms) SELECT "skydrive_lti_keys".* FROM "skydrive_lti_keys" ORDER BY "skydrive_lti_keys"."id" DESC LIMIT 1
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
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-15 00:00:00.000000000 Z
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