Example #1
0
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
}