mirror of
https://github.com/gravitational/teleport.git
synced 2026-10-30 18:29:21 +08:00
Set suggested reviewers field to the UI user context struct (#5467)
This commit is contained in:
@@ -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
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user