Skip to content

Commit 3f5a596

Browse files
committed
fix: single variable for all principals
1 parent 8d4bcf4 commit 3f5a596

File tree

1 file changed

+21
-23
lines changed

1 file changed

+21
-23
lines changed

pkg/cmd/kafka/acl/grant/grant.go

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ import (
1919
kafkainstanceclient "github.com/redhat-developer/app-services-sdk-go/kafkainstance/apiv1internal/client"
2020
)
2121

22+
var (
23+
serviceAccount string
24+
userID string
25+
allAccounts bool
26+
)
27+
2228
// When the value of the `--topic`, `--group`, `user` or `service-account` option is one of
2329
// the keys of this map, it will be replaced by the corresponding value.
2430
var commonArgAliases = map[string]string{
@@ -35,15 +41,13 @@ type options struct {
3541

3642
kafkaID string
3743
topic string
38-
user string
39-
svcAccount string
44+
principal string
4045
group string
4146
producer bool
4247
consumer bool
4348
topicPrefix string
4449
groupPrefix string
4550
force bool
46-
allAccounts bool
4751
}
4852

4953
// NewGrantPermissionsACLCommand creates a series of ACL rules
@@ -89,16 +93,16 @@ func NewGrantPermissionsACLCommand(f *factory.Factory) *cobra.Command {
8993
},
9094
}
9195

92-
cmd.Flags().StringVar(&opts.user, "user", "", opts.localizer.MustLocalize("kafka.acl.common.flag.user.description"))
93-
cmd.Flags().StringVar(&opts.svcAccount, "service-account", "", opts.localizer.MustLocalize("kafka.acl.common.flag.serviceAccount.description"))
96+
cmd.Flags().StringVar(&userID, "user", "", opts.localizer.MustLocalize("kafka.acl.common.flag.user.description"))
97+
cmd.Flags().StringVar(&serviceAccount, "service-account", "", opts.localizer.MustLocalize("kafka.acl.common.flag.serviceAccount.description"))
9498
cmd.Flags().StringVar(&opts.topic, "topic", "", opts.localizer.MustLocalize("kafka.acl.common.flag.topic.description"))
9599
cmd.Flags().StringVar(&opts.group, "group", "", opts.localizer.MustLocalize("kafka.acl.common.flag.group.description"))
96100
cmd.Flags().BoolVar(&opts.consumer, "consumer", false, opts.localizer.MustLocalize("kafka.acl.grantPermissions.flag.consumer.description"))
97101
cmd.Flags().BoolVar(&opts.producer, "producer", false, opts.localizer.MustLocalize("kafka.acl.grantPermissions.flag.producer.description"))
98102
cmd.Flags().StringVar(&opts.topicPrefix, "topic-prefix", "", opts.localizer.MustLocalize("kafka.acl.common.flag.topicPrefix.description"))
99103
cmd.Flags().StringVar(&opts.groupPrefix, "group-prefix", "", opts.localizer.MustLocalize("kafka.acl.common.flag.groupPrefix.description"))
100104
cmd.Flags().StringVar(&opts.kafkaID, "instance-id", "", opts.localizer.MustLocalize("kafka.acl.common.flag.instance.id.description"))
101-
cmd.Flags().BoolVar(&opts.allAccounts, "all-accounts", false, opts.localizer.MustLocalize("kafka.acl.common.flag.allAccounts.description"))
105+
cmd.Flags().BoolVar(&allAccounts, "all-accounts", false, opts.localizer.MustLocalize("kafka.acl.common.flag.allAccounts.description"))
102106
cmd.Flags().BoolVarP(&opts.force, "yes", "y", false, opts.localizer.MustLocalize("kafka.acl.grantPermissions.flag.yes.description"))
103107

104108
return cmd
@@ -124,8 +128,6 @@ func runGrantPermissions(opts *options) (err error) {
124128
var topicPatternArg = kafkainstanceclient.ACLPATTERNTYPE_LITERAL
125129
var groupPatternArg = kafkainstanceclient.ACLPATTERNTYPE_LITERAL
126130

127-
var userArg string
128-
129131
if opts.topic != "" {
130132
topicNameArg = getArgumentFromAlias(opts.topic)
131133
}
@@ -144,27 +146,23 @@ func runGrantPermissions(opts *options) (err error) {
144146
groupPatternArg = kafkainstanceclient.ACLPATTERNTYPE_PREFIXED
145147
}
146148

147-
if opts.user != "" {
148-
if opts.user == acl.All {
149-
return opts.localizer.MustLocalizeError("kafka.acl.common.error.allNotAllowed", localize.NewEntry("Flag", "user"))
150-
}
151-
userArg = buildPrincipal(opts.user)
149+
if userID != "" {
150+
opts.principal = userID
152151
}
153152

154-
if opts.allAccounts {
155-
userArg = buildPrincipal(acl.Wildcard)
153+
if serviceAccount != "" {
154+
opts.principal = serviceAccount
156155
}
157156

158-
if opts.svcAccount != "" {
159-
if opts.svcAccount == acl.All {
160-
return opts.localizer.MustLocalizeError("kafka.acl.common.error.allNotAllowed", localize.NewEntry("Flag", "service-account"))
161-
}
162-
userArg = buildPrincipal(opts.svcAccount)
157+
if allAccounts {
158+
opts.principal = acl.Wildcard
163159
}
164160

165161
var aclBindRequests []kafkainstanceclient.ApiCreateAclRequest
166162
var aclBindingList []kafkainstanceclient.AclBinding
167163

164+
userArg := buildPrincipal(opts.principal)
165+
168166
req := api.AclsApi.CreateAcl(opts.Context)
169167

170168
aclBindTopicDescribe := kafkainstanceclient.NewAclBinding(
@@ -316,17 +314,17 @@ func validateFlagInputCombination(opts *options) error {
316314
}
317315

318316
// check if priincipal is provided
319-
if opts.user == "" && opts.svcAccount == "" && !opts.allAccounts {
317+
if userID == "" && serviceAccount == "" && !allAccounts {
320318
return opts.localizer.MustLocalizeError("kafka.acl.grantPermissions.error.noPrincipalsSelected")
321319
}
322320

323321
// user and service account should not be provided together
324-
if opts.user != "" && opts.svcAccount != "" {
322+
if userID != "" && serviceAccount != "" {
325323
return opts.localizer.MustLocalizeError("kafka.acl.grantPermissions.error.bothPrincipalsSelected")
326324
}
327325

328326
// user and service account can't be along with "--all-accounts" flag
329-
if opts.allAccounts && (opts.svcAccount != "" || opts.user != "") {
327+
if allAccounts && (serviceAccount != "" || userID != "") {
330328
return opts.localizer.MustLocalizeError("kafka.acl.grantPermissions.allPrinciapls.error.notAllowed")
331329
}
332330

0 commit comments

Comments
 (0)