Set suggested reviewers field to the UI user context struct (#5467)

This commit is contained in:
Lisa Kim
2021-03-24 16:46:24 -07:00
committed by GitHub
parent 59d2379b94
commit b0dba9bc00
3 changed files with 26 additions and 10 deletions
+1 -1
View File
@@ -1175,7 +1175,7 @@ func (a *ServerWithRoles) getProxyPublicAddr() string {
}
func (a *ServerWithRoles) DeleteAccessRequest(ctx context.Context, name string) error {
if err := a.action(defaults.Namespace, services.KindAccessRequest, services.VerbUpdate); err != nil {
if err := a.action(defaults.Namespace, services.KindAccessRequest, services.VerbDelete); err != nil {
return trace.Wrap(err)
}
return a.authServer.DeleteAccessRequest(ctx, name)
+15 -7
View File
@@ -488,22 +488,30 @@ func (h *Handler) getUserContext(w http.ResponseWriter, r *http.Request, p httpr
if err != nil {
return nil, trace.Wrap(err)
}
user, err := clt.GetUser(c.GetUser(), false)
if err != nil {
return nil, trace.Wrap(err)
}
res, err := clt.GetAccessCapabilities(r.Context(), services.AccessCapabilitiesRequest{
RequestableRoles: true,
})
if err != nil {
return nil, trace.Wrap(err)
}
userContext, err := ui.NewUserContext(user, roleset)
if err != nil {
return nil, trace.Wrap(err)
}
userContext.RequestableRoles = res.RequestableRoles
res, err := clt.GetAccessCapabilities(r.Context(), services.AccessCapabilitiesRequest{
RequestableRoles: true,
SuggestedReviewers: true,
})
if err != nil {
return nil, trace.Wrap(err)
}
userContext.AccessCapabilities = ui.AccessCapabilities{
RequestableRoles: res.RequestableRoles,
SuggestedReviewers: res.SuggestedReviewers,
}
userContext.Cluster, err = ui.GetClusterDetails(site)
if err != nil {
return nil, trace.Wrap(err)
+10 -2
View File
@@ -39,6 +39,14 @@ type accessStrategy struct {
Prompt string `json:"prompt"`
}
// AccessCapabilities defines allowable access request rules defined in a user's roles.
type AccessCapabilities struct {
// RequestableRoles is a list of roles that the user can select when requesting access.
RequestableRoles []string `json:"requestableRoles"`
// SuggestedReviewers is a list of reviewers that the user can select when creating a request.
SuggestedReviewers []string `json:"suggestedReviewers"`
}
type userACL struct {
// Sessions defines access to recorded sessions
Sessions access `json:"sessions"`
@@ -85,8 +93,8 @@ type UserContext struct {
Cluster *Cluster `json:"cluster"`
// AccessStrategy describes how a user should access teleport resources.
AccessStrategy accessStrategy `json:"accessStrategy"`
// RequestableRoles are roles that the user can assume when requesting access.
RequestableRoles []string `json:"requestableRoles"`
// AccessCapabilities defines allowable access request rules defined in a user's roles.
AccessCapabilities AccessCapabilities `json:"accessCapabilities"`
}
func getLogins(roleSet services.RoleSet) []string {