Class: Fog::Brightbox::OAuth2::CredentialSet
- Inherits:
-
Object
- Object
- Fog::Brightbox::OAuth2::CredentialSet
- Defined in:
- lib/fog/brightbox/oauth2.rb
Overview
Interface to update certain credentials (after password change)
Encapsulates credentials required to request access tokens from the Brightbox authorisation servers
Instance Attribute Summary collapse
-
#access_token ⇒ Object
readonly
Returns the value of attribute access_token.
-
#client_id ⇒ Object
readonly
Returns the value of attribute client_id.
-
#client_secret ⇒ Object
readonly
Returns the value of attribute client_secret.
-
#expires_in ⇒ Object
readonly
Returns the value of attribute expires_in.
-
#password ⇒ Object
readonly
Returns the value of attribute password.
-
#refresh_token ⇒ Object
readonly
Returns the value of attribute refresh_token.
-
#username ⇒ Object
readonly
Returns the value of attribute username.
Instance Method Summary collapse
-
#access_token? ⇒ Boolean
Is an access token available for these credentials?.
-
#best_grant_strategy ⇒ Object
Based on available credentials returns the best strategy.
-
#initialize(client_id, client_secret, options = {}) ⇒ CredentialSet
constructor
A new instance of CredentialSet.
-
#refresh_token? ⇒ Boolean
Is a refresh token available for these credentials?.
-
#update_tokens(access_token, refresh_token = nil, expires_in = nil) ⇒ Object
Updates the credentials with newer tokens.
-
#user_details? ⇒ Boolean
Returns true if user details are available.
Constructor Details
#initialize(client_id, client_secret, options = {}) ⇒ CredentialSet
Returns a new instance of CredentialSet.
48 49 50 51 52 53 54 55 56 |
# File 'lib/fog/brightbox/oauth2.rb', line 48 def initialize(client_id, client_secret, = {}) @client_id = client_id @client_secret = client_secret @username = [:username] @password = [:password] @access_token = [:access_token] @refresh_token = [:refresh_token] @expires_in = [:expires_in] end |
Instance Attribute Details
#access_token ⇒ Object (readonly)
Returns the value of attribute access_token.
40 41 42 |
# File 'lib/fog/brightbox/oauth2.rb', line 40 def access_token @access_token end |
#client_id ⇒ Object (readonly)
Returns the value of attribute client_id.
39 40 41 |
# File 'lib/fog/brightbox/oauth2.rb', line 39 def client_id @client_id end |
#client_secret ⇒ Object (readonly)
Returns the value of attribute client_secret.
39 40 41 |
# File 'lib/fog/brightbox/oauth2.rb', line 39 def client_secret @client_secret end |
#expires_in ⇒ Object (readonly)
Returns the value of attribute expires_in.
40 41 42 |
# File 'lib/fog/brightbox/oauth2.rb', line 40 def expires_in @expires_in end |
#password ⇒ Object (readonly)
Returns the value of attribute password.
39 40 41 |
# File 'lib/fog/brightbox/oauth2.rb', line 39 def password @password end |
#refresh_token ⇒ Object (readonly)
Returns the value of attribute refresh_token.
40 41 42 |
# File 'lib/fog/brightbox/oauth2.rb', line 40 def refresh_token @refresh_token end |
#username ⇒ Object (readonly)
Returns the value of attribute username.
39 40 41 |
# File 'lib/fog/brightbox/oauth2.rb', line 39 def username @username end |
Instance Method Details
#access_token? ⇒ Boolean
Is an access token available for these credentials?
65 66 67 |
# File 'lib/fog/brightbox/oauth2.rb', line 65 def access_token? !!@access_token end |
#best_grant_strategy ⇒ Object
Add a means to dictate which should or shouldn’t be used
Based on available credentials returns the best strategy
85 86 87 88 89 90 91 92 93 |
# File 'lib/fog/brightbox/oauth2.rb', line 85 def best_grant_strategy if refresh_token? RefreshTokenStrategy.new(self) elsif user_details? UserCredentialsStrategy.new(self) else ClientCredentialsStrategy.new(self) end end |
#refresh_token? ⇒ Boolean
Is a refresh token available for these credentials?
70 71 72 |
# File 'lib/fog/brightbox/oauth2.rb', line 70 def refresh_token? !!@refresh_token end |
#update_tokens(access_token, refresh_token = nil, expires_in = nil) ⇒ Object
Updates the credentials with newer tokens
75 76 77 78 79 |
# File 'lib/fog/brightbox/oauth2.rb', line 75 def update_tokens(access_token, refresh_token = nil, expires_in = nil) @access_token = access_token @refresh_token = refresh_token @expires_in = expires_in end |
#user_details? ⇒ Boolean
Returns true if user details are available
60 61 62 |
# File 'lib/fog/brightbox/oauth2.rb', line 60 def user_details? !!(@username && @password) end |