func (r *requestAttributeGetter) GetAttribs(req *http.Request) authorizer.Attributes { attribs := authorizer.AttributesRecord{} ctx, ok := r.requestContextMapper.Get(req) if ok { user, ok := api.UserFrom(ctx) if ok { attribs.User = user } } attribs.ReadOnly = IsReadOnlyReq(*req) apiRequestInfo, _ := r.apiRequestInfoResolver.GetAPIRequestInfo(req) // If a path follows the conventions of the REST object store, then // we can extract the resource. Otherwise, not. attribs.Resource = apiRequestInfo.Resource // If the request specifies a namespace, then the namespace is filled in. // Assumes there is no empty string namespace. Unspecified results // in empty (does not understand defaulting rules.) attribs.Namespace = apiRequestInfo.Namespace return &attribs }
func (r *requestAttributeGetter) GetAttribs(req *http.Request) authorizer.Attributes { attribs := authorizer.AttributesRecord{} user, ok := r.userContexts.Get(req) if ok { attribs.User = user } attribs.ReadOnly = IsReadOnlyReq(*req) // If a path follows the conventions of the REST object store, then // we can extract the object Kind. Otherwise, not. attribs.Kind = KindFromRequest(*req) // If the request specifies a namespace, then the namespace is filled in. // Assumes there is no empty string namespace. Unspecified results // in empty (does not understand defaulting rules.) attribs.Namespace = req.URL.Query().Get("namespace") return &attribs }