class Hotify::Cli
Public Instance Methods
apply(path)
click to toggle source
# File lib/hotify/cli.rb, line 23 def apply(path) role_file = YAML.load_file(path) add_role_by_yaml(role_file) remove_role_by_yaml(role_file) end
dump()
click to toggle source
# File lib/hotify/cli.rb, line 6 def dump Hotify::Role.new.dump_role end
Private Instance Methods
add!(users_and_roles_will_add)
click to toggle source
# File lib/hotify/cli.rb, line 77 def add!(users_and_roles_will_add) users_and_roles_will_add.each do |user_email, role_names| if options[:dry_run] puts "#{user_email} will add to:" role_names.each { | role_name | puts role_name } else role_ids = role_names.map{ |role_name| role_id_by(role_name) } hotify_role.add_role(user_email, role_ids) puts "#{user_email} added to:" role_names.each { | role_name | puts role_name } end end end
add_role_by_yaml(hotify_role_users_hash)
click to toggle source
# File lib/hotify/cli.rb, line 51 def add_role_by_yaml(hotify_role_users_hash) users_and_roles_will_add = Hash.new { |h,k| h[k] = [] } hotify_role_users_hash.each do | hotify_role_name, hotify_user_emails | hotify_user_emails.each do | hotify_user_email | unless onelogin_role_in_user[hotify_role_name].include?(hotify_user_email) users_and_roles_will_add[hotify_user_email].push(hotify_role_name) end end end add!(users_and_roles_will_add) end
hotify_role()
click to toggle source
# File lib/hotify/cli.rb, line 31 def hotify_role @_hotify_role ||= Hotify::Role.new end
onelogin_role_in_user()
click to toggle source
# File lib/hotify/cli.rb, line 47 def onelogin_role_in_user @_onelogin_role_in_user ||= role_in_user_dump(hotify_role.role_in_user) end
remove!(users_and_roles_will_remove)
click to toggle source
# File lib/hotify/cli.rb, line 91 def remove!(users_and_roles_will_remove) users_and_roles_will_remove.each do |user_email, role_names| if options[:dry_run] puts "#{user_email} will remove by:" role_names.each { | role_name | puts role_name } else role_ids = role_names.map{ |role_name| role_id_by(role_name) } hotify_role.leave_role(user_email, role_ids) puts "#{user_email} removed by:" role_names.each { | role_name | puts role_name } end end end
remove_role_by_yaml(hotify_role_users_hash)
click to toggle source
# File lib/hotify/cli.rb, line 64 def remove_role_by_yaml(hotify_role_users_hash) users_and_roles_will_remove = Hash.new { |h,k| h[k] = [] } hotify_role_users_hash.each do | hotify_role_name, hotify_user_emails | onelogin_role_in_user[hotify_role_name].each do | onelogin_user_email | unless hotify_user_emails.include?(onelogin_user_email) users_and_roles_will_remove[onelogin_user_email].push(hotify_role_name) end end end remove!(users_and_roles_will_remove) end
role_id_by(name)
click to toggle source
# File lib/hotify/cli.rb, line 39 def role_id_by(name) role_id_names.each do | role_id_name | return role_id_name[:id] if role_id_name[:name] == name end nil end
role_id_names()
click to toggle source
# File lib/hotify/cli.rb, line 35 def role_id_names @_role_id_names ||= hotify_role.all_roles.map{ | role | { id: role.id, name: role.name} } end
role_in_user_dump(role_in_user)
click to toggle source
# File lib/hotify/cli.rb, line 105 def role_in_user_dump(role_in_user) dump = Hash.new { |h,k| h[k] = [] } role_in_user.each do | role_name, users | users.each do | user | dump[role_name].push(user.email) end end dump end