pkg/auth/group/group_adder.go
ebf02f54
 package group
 
 import (
 	"net/http"
 
 	"github.com/openshift/origin/pkg/auth/api"
 	"github.com/openshift/origin/pkg/auth/authenticator"
 )
 
 // GroupAdder wraps a request authenticator, and adds the specified groups to the returned user when authentication succeeds
 type GroupAdder struct {
 	Authenticator authenticator.Request
 	Groups        []string
 }
 
 func (g *GroupAdder) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
 	user, ok, err := g.Authenticator.AuthenticateRequest(req)
 	if err != nil || !ok {
 		return nil, ok, err
 	}
 	return &api.DefaultUserInfo{
 		Name:   user.GetName(),
 		UID:    user.GetUID(),
 		Groups: append(user.GetGroups(), g.Groups...),
 		Scope:  user.GetScope(),
 		Extra:  user.GetExtra(),
 	}, true, nil
 }
 
 func NewGroupAdder(auth authenticator.Request, groups []string) *GroupAdder {
 	return &GroupAdder{auth, groups}
 }