class EtherpadCollaboration
Public Class Methods
generate_url(user, collaboration)
click to toggle source
# File lib/etherpad_canvas/etherpad_collaboration.rb, line 50 def self.generate_url(user, collaboration) timestamp = (Time.now.to_f * 1000).to_i query = { timestamp: timestamp, user_id: user.id, username: user.name, }.to_query "#{collaboration.url}?#{query}" end
sign_url(user, collaboration)
click to toggle source
# 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
Public Instance Methods
initialize_document()
click to toggle source
# 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