Class: EtherpadCollaboration
- Inherits:
-
Object
- Object
- EtherpadCollaboration
- Defined in:
- lib/etherpad_canvas/etherpad_collaboration.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.generate_url(user, collaboration) ⇒ Object
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/etherpad_canvas/etherpad_collaboration.rb', line 50 def self.generate_url(user, collaboration) = (Time.now.to_f * 1000).to_i query = { timestamp: , user_id: user.id, username: user.name, }.to_query "#{collaboration.url}?#{query}" end |
.sign_url(user, collaboration) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/etherpad_canvas/etherpad_collaboration.rb', line 30 def self.sign_url(user, collaboration) plugin = PluginSetting.find_by(name: "etherpad_canvas") etherpad_plugin = PluginSetting.find_by(name: "etherpad") domain = etherpad_plugin.settings["domain"].split("/")[0] if !plugin.disabled key = plugin.settings[:key] url = generate_url user, collaboration url_sans_http = url.split(domain)[1] digest = OpenSSL::Digest.new("sha1") hmac = OpenSSL::HMAC.hexdigest(digest, key, url_sans_http) "#{url}&signature=#{hmac}" end end |
Instance Method Details
#initialize_document ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/etherpad_canvas/etherpad_collaboration.rb', line 22 def initialize_document scheme = "https" if PluginSetting.find_by(name: "etherpad_canvas").settings[:insecure] == "1" scheme = "http" end self.url ||= "#{scheme}://#{EtherpadCollaboration.config[:domain]}/p/i-#{uuid}" end |