class SparkApi::Authentication::OAuth2Impl::CLIProvider
Constants
- SESSION_FILE
Attributes
persistent_sessions[RW]
session_alias[RW]
Public Class Methods
new(credentials)
click to toggle source
Calls superclass method
SparkApi::Authentication::BaseOAuth2Provider::new
# File lib/spark_api/authentication/oauth2_impl/cli_provider.rb, line 9 def initialize(credentials) super(credentials) @grant_type = :password @persistent_sessions = false @session_alias = "default" end
Public Instance Methods
destroy_session()
click to toggle source
# File lib/spark_api/authentication/oauth2_impl/cli_provider.rb, line 36 def destroy_session destroy_persistent_session @session = nil end
load_session()
click to toggle source
# File lib/spark_api/authentication/oauth2_impl/cli_provider.rb, line 27 def load_session() @session ||= load_persistent_session end
persistent_sessions?()
click to toggle source
# File lib/spark_api/authentication/oauth2_impl/cli_provider.rb, line 41 def persistent_sessions? persistent_sessions == true end
redirect(url)
click to toggle source
# File lib/spark_api/authentication/oauth2_impl/cli_provider.rb, line 18 def redirect(url) puts "Missing OAuth2 session, redirecting..." puts "Please visit #{url}, login as a user, and paste the authorization code here:" self.code = ask("Authorization code?") do |q| q.whitespace = :strip_and_collapse q.validate = /^\w+$/ end end
save_session(session)
click to toggle source
# File lib/spark_api/authentication/oauth2_impl/cli_provider.rb, line 31 def save_session(session) @session = session save_persistent_session end
Private Instance Methods
destroy_persistent_session()
click to toggle source
# File lib/spark_api/authentication/oauth2_impl/cli_provider.rb, line 71 def destroy_persistent_session return unless persistent_sessions? yaml = load_file return unless yaml.include? session_key yaml[session_key].delete("session") File.open(filename, "w") {|f| f.write(yaml.to_yaml) } end
filename()
click to toggle source
# File lib/spark_api/authentication/oauth2_impl/cli_provider.rb, line 79 def filename ENV['HOME'] + "/" + SESSION_FILE end
load_file()
click to toggle source
# File lib/spark_api/authentication/oauth2_impl/cli_provider.rb, line 83 def load_file yaml = {} begin yaml = YAML.load(File.open(filename)) yaml = {} if yaml == false rescue => e puts "no file: #{e.message}" end yaml end
load_persistent_session()
click to toggle source
# File lib/spark_api/authentication/oauth2_impl/cli_provider.rb, line 47 def load_persistent_session return nil unless persistent_sessions? s = load_file[session_key]["session"] OAuthSession.new(s) rescue => e puts "no file: #{e.message}" end
save_persistent_session()
click to toggle source
# File lib/spark_api/authentication/oauth2_impl/cli_provider.rb, line 55 def save_persistent_session return unless persistent_sessions? && !@session.nil? yaml = load_file unless yaml.include? session_key yaml[session_key] = {} yaml[session_key]["created"] = Time.now end yaml[session_key]["session"] = @session.to_hash yaml[session_key]["modified"] = Time.now File.open(filename, "w") {|f| f.write(yaml.to_yaml) } end
session_key()
click to toggle source
# File lib/spark_api/authentication/oauth2_impl/cli_provider.rb, line 67 def session_key "#{client_id}_#{session_alias}" end