Class: CredentialsManager::PasswordManager
- Inherits:
-
Object
- Object
- CredentialsManager::PasswordManager
- Defined in:
- lib/credentials_manager/password_manager.rb
Overview
Handles reading out the password from the keychain or asking for login data
Instance Attribute Summary collapse
-
#password ⇒ String
The password of the currently logged in user.
-
#username ⇒ String
The username / email address of the currently logged in user.
Class Method Summary collapse
- .logout ⇒ Object
-
.shared_manager(id_to_use = nil, ask_if_missing = true) ⇒ Object
A singleton object, which also makes sure, to use the correct Apple ID.
Instance Method Summary collapse
-
#initialize(id_to_use = nil, ask_if_missing = true) ⇒ PasswordManager
constructor
A new instance of PasswordManager.
-
#password_seems_wrong ⇒ Object
This method is called, when the iTunes backend returns that the login data is wrong This will ask the user, if he wants to re-enter the password.
Constructor Details
#initialize(id_to_use = nil, ask_if_missing = true) ⇒ PasswordManager
A new instance of PasswordManager.
This already check the Keychain if there is a username and password stored. If that’s not the case, it will ask for login data via stdin
34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/credentials_manager/password_manager.rb', line 34 def initialize(id_to_use = nil, ask_if_missing = true) self.username ||= id_to_use || ENV["DELIVER_USER"] || AppfileConfig.try_fetch_value(:apple_id) || load_from_keychain[0] self.password ||= ENV["DELIVER_PASSWORD"] || load_from_keychain[1] if (self.username || '').length == 0 or (self.password || '').length == 0 if ask_if_missing puts "No username or password given. You can set environment variables:" puts "DELIVER_USER, DELIVER_PASSWORD" ask_for_login end end end |
Instance Attribute Details
#password ⇒ String
Returns The password of the currently logged in user.
11 12 13 |
# File 'lib/credentials_manager/password_manager.rb', line 11 def password @password end |
#username ⇒ String
Returns The username / email address of the currently logged in user.
9 10 11 |
# File 'lib/credentials_manager/password_manager.rb', line 9 def username @username end |
Class Method Details
.logout ⇒ Object
23 24 25 |
# File 'lib/credentials_manager/password_manager.rb', line 23 def self.logout @@instance = nil end |
.shared_manager(id_to_use = nil, ask_if_missing = true) ⇒ Object
A singleton object, which also makes sure, to use the correct Apple ID
19 20 21 |
# File 'lib/credentials_manager/password_manager.rb', line 19 def self.shared_manager(id_to_use = nil, ask_if_missing = true) @@instance ||= PasswordManager.new(id_to_use, ask_if_missing) end |
Instance Method Details
#password_seems_wrong ⇒ Object
This method is called, when the iTunes backend returns that the login data is wrong This will ask the user, if he wants to re-enter the password
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/credentials_manager/password_manager.rb', line 51 def password_seems_wrong puts "It seems like the username or password for the account '#{self.username}' is wrong.".red reenter = agree("Do you want to re-enter your username and password? (y/n)", true) if reenter remove_from_keychain @username = nil @password = nil puts "You will have to re-run the recent command to use the new username/password.".yellow return true else return false end end |