class SimplyGenius::Atmos::Commands::User
Public Class Methods
description()
click to toggle source
# File lib/simplygenius/atmos/commands/user.rb, line 10 def self.description "Manages users in the cloud provider" end
Public Instance Methods
execute()
click to toggle source
# File lib/simplygenius/atmos/commands/user.rb, line 46 def execute Atmos.config.provider.auth_manager.authenticate(ENV) do |auth_env| ClimateControl.modify(auth_env) do manager = Atmos.config.provider.user_manager user = manager.create_user(username) user.merge!(manager.set_groups(username, group_list, force: force?)) if group_list.present? user.merge!(manager.enable_login(username, force: force?)) if login? user.merge!(manager.enable_mfa(username, force: force?)) if mfa? user.merge!(manager.enable_access_keys(username, force: force?)) if key? user.merge!(manager.set_public_key(username, public_key, force: force?)) if public_key.present? logger.info "\nUser created:\n#{display user}\n" if mfa? && user[:mfa_secret] save_mfa = agree("Save the MFA secret for runtime integration with auth? ") {|q| q.default = 'y' } Atmos::Otp.instance.save if save_mfa end end end end