github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/google/iam/convert.go (about) 1 package iam 2 3 import ( 4 "github.com/khulnasoft-lab/defsec/pkg/providers/google/iam" 5 "github.com/khulnasoft-lab/defsec/pkg/terraform" 6 defsecTypes "github.com/khulnasoft-lab/defsec/pkg/types" 7 ) 8 9 func ParsePolicyBlock(block *terraform.Block) []iam.Binding { 10 var bindings []iam.Binding 11 for _, bindingBlock := range block.GetBlocks("binding") { 12 binding := iam.Binding{ 13 Metadata: bindingBlock.GetMetadata(), 14 Members: nil, 15 Role: bindingBlock.GetAttribute("role").AsStringValueOrDefault("", bindingBlock), 16 IncludesDefaultServiceAccount: defsecTypes.BoolDefault(false, bindingBlock.GetMetadata()), 17 } 18 membersAttr := bindingBlock.GetAttribute("members") 19 members := membersAttr.AsStringValues().AsStrings() 20 for _, member := range members { 21 binding.Members = append(binding.Members, defsecTypes.String(member, membersAttr.GetMetadata())) 22 } 23 bindings = append(bindings, binding) 24 } 25 return bindings 26 }