@@ -31,6 +31,14 @@ func FilterPermissions(input *lakeformation.ListPermissionsInput, tableType stri
31
31
return FilterDatabasePermissions (input .Principal .DataLakePrincipalIdentifier , allPermissions )
32
32
}
33
33
34
+ if input .Resource .LFTag != nil {
35
+ return FilterLFTagPermissions (input .Principal .DataLakePrincipalIdentifier , allPermissions )
36
+ }
37
+
38
+ if input .Resource .LFTagPolicy != nil {
39
+ return FilterLFTagPolicyPermissions (input .Principal .DataLakePrincipalIdentifier , allPermissions )
40
+ }
41
+
34
42
if tableType == TableTypeTableWithColumns {
35
43
return FilterTableWithColumnsPermissions (input .Principal .DataLakePrincipalIdentifier , input .Resource .Table , columnNames , excludedColumnNames , columnWildcard , allPermissions )
36
44
}
@@ -176,3 +184,35 @@ func FilterDatabasePermissions(principal *string, allPermissions []*lakeformatio
176
184
177
185
return cleanPermissions
178
186
}
187
+
188
+ func FilterLFTagPermissions (principal * string , allPermissions []* lakeformation.PrincipalResourcePermissions ) []* lakeformation.PrincipalResourcePermissions {
189
+ var cleanPermissions []* lakeformation.PrincipalResourcePermissions
190
+
191
+ for _ , perm := range allPermissions {
192
+ if aws .StringValue (principal ) != aws .StringValue (perm .Principal .DataLakePrincipalIdentifier ) {
193
+ continue
194
+ }
195
+
196
+ if perm .Resource .LFTag != nil {
197
+ cleanPermissions = append (cleanPermissions , perm )
198
+ }
199
+ }
200
+
201
+ return cleanPermissions
202
+ }
203
+
204
+ func FilterLFTagPolicyPermissions (principal * string , allPermissions []* lakeformation.PrincipalResourcePermissions ) []* lakeformation.PrincipalResourcePermissions {
205
+ var cleanPermissions []* lakeformation.PrincipalResourcePermissions
206
+
207
+ for _ , perm := range allPermissions {
208
+ if aws .StringValue (principal ) != aws .StringValue (perm .Principal .DataLakePrincipalIdentifier ) {
209
+ continue
210
+ }
211
+
212
+ if perm .Resource .LFTagPolicy != nil {
213
+ cleanPermissions = append (cleanPermissions , perm )
214
+ }
215
+ }
216
+
217
+ return cleanPermissions
218
+ }
0 commit comments