Skip to content

Commit a49a4f2

Browse files
committed
update canRequestProjects check to include list,create
This patch adds a check to see if the user cannot list `projectrequests`, in addition to create `projectrequests`. This warning showed up previously only when a user did not have a `self-provisioner` role, however, it faield to show up if the user did have a `self-provisioner` role but was unable to list `projectrequests`.
1 parent 0836881 commit a49a4f2

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

pkg/cmd/cli/cmd/login/loginoptions.go

+15-2
Original file line numberDiff line numberDiff line change
@@ -250,19 +250,32 @@ func (o *LoginOptions) canRequestProjects() (bool, error) {
250250
}
251251

252252
sar := &authorizationapi.SubjectAccessReview{
253+
Action: authorizationapi.Action{
254+
Namespace: o.DefaultNamespace,
255+
Verb: "list",
256+
Resource: "projectrequests",
257+
},
258+
}
259+
260+
listResponse, err := oClient.SubjectAccessReviews().Create(sar)
261+
if err != nil {
262+
return false, err
263+
}
264+
265+
sar = &authorizationapi.SubjectAccessReview{
253266
Action: authorizationapi.Action{
254267
Namespace: o.DefaultNamespace,
255268
Verb: "create",
256269
Resource: "projectrequests",
257270
},
258271
}
259272

260-
response, err := oClient.SubjectAccessReviews().Create(sar)
273+
createResponse, err := oClient.SubjectAccessReviews().Create(sar)
261274
if err != nil {
262275
return false, err
263276
}
264277

265-
return response.Allowed, nil
278+
return (listResponse.Allowed && createResponse.Allowed), nil
266279
}
267280

268281
// Discover the projects available for the established session and take one to use. It

0 commit comments

Comments
 (0)