etherpad_canvas 1.1.2 → 1.2.2
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 298399568fd3c13b2e7ac6a9732ef6c6acbd354a
|
4
|
+
data.tar.gz: 2d125e17633e977b17040940b9aac22fdff97de7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e17d81b0065b9cf832a8b76477b795fc36beac0d8c8c4cf733dc43da1719bd19ee90192e0b30966f2ab07ee27f4de604ae84773ce329586c9005282c73b24b3
|
7
|
+
data.tar.gz: 9fca27a1c9a3aeea18fdec3b76c1e60e081ac26a8f2e7e9833ecf232d1327ffcfa5931012c721e8d4e4e96266bda72e6027c657ea1e15cca8d612ba527a06e4d
|
data/README.rdoc
CHANGED
@@ -14,12 +14,23 @@ Description
|
|
14
14
|
Installation
|
15
15
|
===================================================
|
16
16
|
|
17
|
+
First, set up Etherpad in your Canvas instance by:
|
18
|
+
|
19
|
+
Going to 'Plugins' under the settings for your account
|
20
|
+
and enable the Etherpad plugin
|
21
|
+
>> Make sure to have the domain for your Etherpad instance
|
22
|
+
|
23
|
+
Then change into the plugins folder and clone the etherpad_canvas:
|
24
|
+
|
17
25
|
sysadmin@appserver:~$ cd /path/to/canvas/gems/plugins
|
18
26
|
sysadmin@appserver:/path/to/canvas/gems/plugins$ git clone https://github.com/atomicjolt/etherpad_canvas.git
|
19
27
|
|
20
|
-
Run
|
21
|
-
|
22
|
-
|
28
|
+
Run 'bundle'
|
29
|
+
|
30
|
+
Run 'rake secret' and add the generated secret through
|
31
|
+
Canvas plugin settings for 'Etherpad Security' and save
|
32
|
+
that secret for utilization with the Etherpad Plugin
|
33
|
+
for verification.
|
23
34
|
|
24
35
|
===================================================
|
25
36
|
Usage
|
@@ -18,5 +18,17 @@ TEXT
|
|
18
18
|
<td><%= f.blabel :key, en: "Key" %></td>
|
19
19
|
<td><%= f.text_area :key %></td>
|
20
20
|
</tr>
|
21
|
+
<tr>
|
22
|
+
<td colspan="2">
|
23
|
+
<p><%= t(:insecure_desc, <<-TEXT)
|
24
|
+
Select this box if your instance of Etherpad requires http instead of https
|
25
|
+
TEXT
|
26
|
+
%></p>
|
27
|
+
</td>
|
28
|
+
</tr>
|
29
|
+
<tr>
|
30
|
+
<td><%= f.blabel :insecure, en: "Insecure" %></td>
|
31
|
+
<td><%= f.check_box :insecure %></td>
|
32
|
+
</tr>
|
21
33
|
</table>
|
22
34
|
<% end %>
|
@@ -21,22 +21,56 @@ class CollaborationsController
|
|
21
21
|
alias create_without_etherpad create
|
22
22
|
|
23
23
|
def show
|
24
|
-
|
24
|
+
@collaboration = @context.collaborations.find(params[:id])
|
25
25
|
if @collaboration.collaboration_type == "EtherPad"
|
26
|
-
|
27
|
-
|
26
|
+
return redirect_to EtherpadCollaboration.sign_url(@current_user, @collaboration)
|
27
|
+
else
|
28
|
+
show_without_etherpad
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
31
32
|
def create
|
32
|
-
|
33
|
+
# This code was taken fro the original canvas controller in an effort to get around
|
34
|
+
# the limitations of Rails' version 5.0 to escape a redirect. The only changes that have
|
35
|
+
# been made from the original code are on lines 46 where a .delete was removed from between the
|
36
|
+
# params[:collaboration][:collaboration_type] and line 56
|
37
|
+
content_item = params["contentItems"] ? JSON.parse(params["contentItems"]).first : nil
|
38
|
+
if content_item
|
39
|
+
@collaboration = collaboration_from_content_item(content_item)
|
40
|
+
users, group_ids = content_item_visibility(content_item)
|
41
|
+
else
|
42
|
+
users = User.where(id: Array(params[:user])).to_a
|
43
|
+
group_ids = Array(params[:group])
|
44
|
+
collaboration_params = params.require(:collaboration).permit(:title, :description, :url)
|
45
|
+
collaboration_params[:user] = @current_user
|
46
|
+
@collaboration = Collaboration.typed_collaboration_instance(params[:collaboration][:collaboration_type])
|
47
|
+
collaboration_params.delete(:url) unless @collaboration.is_a?(ExternalToolCollaboration)
|
48
|
+
@collaboration.attributes = collaboration_params
|
49
|
+
end
|
50
|
+
@collaboration.context = @context
|
33
51
|
if @collaboration.collaboration_type == "EtherPad"
|
34
52
|
respond_to do |format|
|
35
|
-
|
36
|
-
|
37
|
-
|
53
|
+
if @collaboration.save
|
54
|
+
Lti::ContentItemUtil.new(content_item).success_callback if content_item
|
55
|
+
@collaboration.update_members(users, group_ids)
|
56
|
+
format.html { redirect_to EtherpadCollaboration.sign_url(@current_user, @collaboration) }
|
57
|
+
format.json {
|
58
|
+
render json: @collaboration.as_json(
|
59
|
+
methods: [:collaborator_ids], permissions: {
|
60
|
+
user: @current_user,
|
61
|
+
session: session,
|
62
|
+
}
|
63
|
+
)
|
64
|
+
}
|
65
|
+
else
|
66
|
+
Lti::ContentItemUtil.new(content_item).failure_callback if content_item
|
67
|
+
flash[:error] = t "errors.create_failed", "Collaboration creation failed"
|
68
|
+
format.html { redirect_to named_context_url(@context, :context_collaborations_url) }
|
69
|
+
format.json { render json: @collaboration.errors, status: :bad_request }
|
38
70
|
end
|
39
71
|
end
|
72
|
+
else
|
73
|
+
create_without_etherpad
|
40
74
|
end
|
41
75
|
end
|
42
76
|
end
|
@@ -20,7 +20,11 @@ require "base64"
|
|
20
20
|
class EtherpadCollaboration
|
21
21
|
|
22
22
|
def initialize_document
|
23
|
-
|
23
|
+
scheme = "https"
|
24
|
+
if PluginSetting.find_by(name: "etherpad_canvas").settings[:insecure] == "1"
|
25
|
+
scheme = "http"
|
26
|
+
end
|
27
|
+
self.url ||= "#{scheme}://#{EtherpadCollaboration.config[:domain]}/p/i-#{uuid}"
|
24
28
|
end
|
25
29
|
|
26
30
|
def self.sign_url(user, collaboration)
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: etherpad_canvas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Durr
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.2
|
19
|
+
version: '4.2'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '5.1'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '4.2'
|
30
|
+
- - "<"
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
32
|
+
version: '5.1'
|
27
33
|
description: Enable secure sign-in with Etherpad collaborations tool.
|
28
34
|
email:
|
29
35
|
- ericdurr@atomicjolt.com
|
@@ -62,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
68
|
version: '0'
|
63
69
|
requirements: []
|
64
70
|
rubyforge_project:
|
65
|
-
rubygems_version: 2.6.
|
71
|
+
rubygems_version: 2.6.11
|
66
72
|
signing_key:
|
67
73
|
specification_version: 4
|
68
74
|
summary: Override and add secure signin to Etherpad
|