module AwsInventory::Iam::Shared
Public Instance Methods
all_users()
click to toggle source
{
"tung": ["admin", "developers"], "vuon": ["admin"], "bob": ["developers"]
}
# File lib/aws_inventory/iam/shared.rb, line 37 def all_users @all_users ||= users.inject({}) do |result, user| result[user.user_name] = group_names(user) result end end
group_names(user)
click to toggle source
# File lib/aws_inventory/iam/shared.rb, line 2 def group_names(user) groups = groups_for(user) groups.map(&:group_name) end
groupless_users()
click to toggle source
# File lib/aws_inventory/iam/shared.rb, line 25 def groupless_users selected_users = all_users.select do |user_name, group_names| group_names.empty? end selected_users.map { |a| a[0] } end
groups()
click to toggle source
# File lib/aws_inventory/iam/shared.rb, line 59 def groups @groups ||= iam.list_groups.groups end
groups_for(user)
click to toggle source
# File lib/aws_inventory/iam/shared.rb, line 8 def groups_for(user) return @@groups[user.user_name] if @@groups[user.user_name] @@groups[user.user_name] = iam.list_groups_for_user(user_name: user.user_name).groups end
user_count(group)
click to toggle source
# File lib/aws_inventory/iam/shared.rb, line 44 def user_count(group) group_counts[group.group_name] end
user_names(group)
click to toggle source
# File lib/aws_inventory/iam/shared.rb, line 48 def user_names(group) users.each do |user| result[user.user_name] = group_names(user) result end end
users()
click to toggle source
# File lib/aws_inventory/iam/shared.rb, line 55 def users @users ||= iam.list_users.users end
users_in_group(group_name)
click to toggle source
iam.list_groups does not show the users in the groups. so users_in_groups returns an Array of the user_names
in the specified group
# File lib/aws_inventory/iam/shared.rb, line 16 def users_in_group(group_name) # user_name is a String # group_names is an Array of Strings selected_users = all_users.select do |user_name, group_names| group_names.include?(group_name) end selected_users.map { |a| a[0] } end