nd002test/on-premise/main/rancher_v2.9.1/source/rancher-2.9.1/pkg/user/manager.go

33 lines
1.2 KiB
Go

package user
import (
"github.com/rancher/norman/types"
v3 "github.com/rancher/rancher/pkg/apis/management.cattle.io/v3"
apitypes "k8s.io/apimachinery/pkg/types"
)
type TokenInput struct {
TokenName string
Description string
Kind string
UserName string
AuthProvider string
TTL *int64
Randomize bool
UserPrincipal v3.Principal
}
type Manager interface {
SetPrincipalOnCurrentUser(apiContext *types.APIContext, principal v3.Principal) (*v3.User, error)
GetUser(apiContext *types.APIContext) string
EnsureToken(input TokenInput) (string, error)
EnsureClusterToken(clusterName string, input TokenInput) (string, error)
DeleteToken(tokenName string) error
EnsureUser(principalName, displayName string) (*v3.User, error)
CheckAccess(accessMode string, allowedPrincipalIDs []string, userPrincipalID string, groups []v3.Principal) (bool, error)
SetPrincipalOnCurrentUserByUserID(userID string, principal v3.Principal) (*v3.User, error)
CreateNewUserClusterRoleBinding(userName string, userUID apitypes.UID) error
GetUserByPrincipalID(principalName string) (*v3.User, error)
GetKubeconfigToken(clusterName, tokenName, description, kind, userName string, userPrincipal v3.Principal) (*v3.Token, string, error)
}