Module: Capitate::CapExt::Connections
- Included in:
- Capistrano::Configuration
- Defined in:
- lib/capitate/cap_ext/connections.rb
Instance Method Summary collapse
-
#clear_sessions ⇒ Object
Close all open sessions, and will force user to re-login.
-
#reset_password ⇒ Object
Reset the password.
-
#reset_user ⇒ Object
Reset to the old user.
-
#set_user(new_user) ⇒ Object
Set the user to something new (but save the old user; reset_user will set it back).
-
#with_user(new_user, &block) ⇒ Object
Perform action as a different user.
Instance Method Details
#clear_sessions ⇒ Object
Close all open sessions, and will force user to re-login.
66 67 68 69 70 71 72 73 |
# File 'lib/capitate/cap_ext/connections.rb', line 66 def clear_sessions sessions.each do |key, session| logger.info "Closing: #{key}" session.close end sessions.clear reset_password end |
#reset_password ⇒ Object
Reset the password. Display the current user that is asking for the password.
77 78 79 80 81 |
# File 'lib/capitate/cap_ext/connections.rb', line 77 def reset_password set :password, Proc.new { Capistrano::CLI.password_prompt("Password (for user: #{user}): ") } end |
#reset_user ⇒ Object
Reset to the old user. Takes care of invalidating current connections. Will force a re-login.
Examples
# User is "root"
set_user("nginx")
# Do something as user nginx
reset_user
# User is now root
36 37 38 39 40 41 |
# File 'lib/capitate/cap_ext/connections.rb', line 36 def reset_user return unless exists?(:previous_user) set :user, fetch(:previous_user) unset :previous_user clear_sessions end |
#set_user(new_user) ⇒ Object
Set the user to something new (but save the old user; reset_user will set it back). Takes care of invalidating current connections. Will force a re-login.
Options
new_user-
User to become
Examples
set_user("nginx")
# Do something as user nginx
16 17 18 19 20 21 22 23 24 |
# File 'lib/capitate/cap_ext/connections.rb', line 16 def set_user(new_user) previous_user = fetch(:user) return if previous_user == new_user set :previous_user, previous_user set :user, new_user clear_sessions end |
#with_user(new_user, &block) ⇒ Object
Perform action as a different user. Yields the previous user to the block.
Options
new_user-
User to become
Examples
new_user("nginx") do |old_user|
# Do something as user nginx
end
# Now as user old_user
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/capitate/cap_ext/connections.rb', line 54 def with_user(new_user, &block) begin set_user(new_user) yield exists?(:previous_user) ? fetch(:previous_user) : nil ensure reset_user end clear_sessions end |