class IamUserParser
Public Instance Methods
parse(cfn_model:, resource:)
click to toggle source
# File lib/cfn-model/parser/iam_user_parser.rb, line 9 def parse(cfn_model:, resource:) iam_user = resource iam_user.policy_objects = iam_user.policies.map do |policy| next unless policy.has_key? 'PolicyName' new_policy = Policy.new new_policy.policy_name = References.resolve_value(cfn_model, policy['PolicyName']) new_policy.policy_document = PolicyDocumentParser.new.parse(cfn_model, policy['PolicyDocument']) new_policy end.reject { |policy| policy.nil? } iam_user.groups.each { |group_name| iam_user.group_names << group_name } user_to_group_additions = cfn_model.resources_by_type 'AWS::IAM::UserToGroupAddition' user_to_group_additions.each do |user_to_group_addition| if user_to_group_addition_has_username(user_to_group_addition.users, iam_user) iam_user.group_names << References.resolve_value(cfn_model, user_to_group_addition.groupName) # we need to figure out the story on resolving Refs i think for this to be real end end end
Private Instance Methods
user_to_group_addition_has_username(addition_user_names, user_to_find)
click to toggle source
# File lib/cfn-model/parser/iam_user_parser.rb, line 36 def user_to_group_addition_has_username(addition_user_names, user_to_find) addition_user_names.each do |addition_user_name| if addition_user_name == user_to_find.userName return true end if addition_user_name.is_a? Hash if !addition_user_name['Ref'].nil? if addition_user_name['Ref'] == user_to_find.logical_resource_id return true end end end end false end