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 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