mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-14 10:53:34 +00:00
rebase: update kubernetes to 1.28.0 in main
updating kubernetes to 1.28.0 in the main repo. Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
This commit is contained in:
committed by
mergify[bot]
parent
b2fdc269c3
commit
ff3e84ad67
62
vendor/k8s.io/apiserver/pkg/cel/library/authz.go
generated
vendored
62
vendor/k8s.io/apiserver/pkg/cel/library/authz.go
generated
vendored
@ -174,6 +174,26 @@ import (
|
||||
// Examples:
|
||||
//
|
||||
// authorizer.path('/healthz').check('GET').reason()
|
||||
//
|
||||
// errored
|
||||
//
|
||||
// Returns true if the authorization check resulted in an error.
|
||||
//
|
||||
// <Decision>.errored() <bool>
|
||||
//
|
||||
// Examples:
|
||||
//
|
||||
// authorizer.group('').resource('pods').namespace('default').check('create').errored() // Returns true if the authorization check resulted in an error
|
||||
//
|
||||
// error
|
||||
//
|
||||
// If the authorization check resulted in an error, returns the error. Otherwise, returns the empty string.
|
||||
//
|
||||
// <Decision>.error() <string>
|
||||
//
|
||||
// Examples:
|
||||
//
|
||||
// authorizer.group('').resource('pods').namespace('default').check('create').error()
|
||||
func Authz() cel.EnvOption {
|
||||
return cel.Lib(authzLib)
|
||||
}
|
||||
@ -209,6 +229,12 @@ var authzLibraryDecls = map[string][]cel.FunctionOpt{
|
||||
cel.BinaryBinding(pathCheckCheck)),
|
||||
cel.MemberOverload("resourcecheck_check", []*cel.Type{ResourceCheckType, cel.StringType}, DecisionType,
|
||||
cel.BinaryBinding(resourceCheckCheck))},
|
||||
"errored": {
|
||||
cel.MemberOverload("decision_errored", []*cel.Type{DecisionType}, cel.BoolType,
|
||||
cel.UnaryBinding(decisionErrored))},
|
||||
"error": {
|
||||
cel.MemberOverload("decision_error", []*cel.Type{DecisionType}, cel.StringType,
|
||||
cel.UnaryBinding(decisionError))},
|
||||
"allowed": {
|
||||
cel.MemberOverload("decision_allowed", []*cel.Type{DecisionType}, cel.BoolType,
|
||||
cel.UnaryBinding(decisionAllowed))},
|
||||
@ -384,6 +410,27 @@ func resourceCheckCheck(arg1, arg2 ref.Val) ref.Val {
|
||||
return resourceCheck.Authorize(context.TODO(), apiVerb)
|
||||
}
|
||||
|
||||
func decisionErrored(arg ref.Val) ref.Val {
|
||||
decision, ok := arg.(decisionVal)
|
||||
if !ok {
|
||||
return types.MaybeNoSuchOverloadErr(arg)
|
||||
}
|
||||
|
||||
return types.Bool(decision.err != nil)
|
||||
}
|
||||
|
||||
func decisionError(arg ref.Val) ref.Val {
|
||||
decision, ok := arg.(decisionVal)
|
||||
if !ok {
|
||||
return types.MaybeNoSuchOverloadErr(arg)
|
||||
}
|
||||
|
||||
if decision.err == nil {
|
||||
return types.String("")
|
||||
}
|
||||
return types.String(decision.err.Error())
|
||||
}
|
||||
|
||||
func decisionAllowed(arg ref.Val) ref.Val {
|
||||
decision, ok := arg.(decisionVal)
|
||||
if !ok {
|
||||
@ -478,10 +525,7 @@ func (a pathCheckVal) Authorize(ctx context.Context, verb string) ref.Val {
|
||||
}
|
||||
|
||||
decision, reason, err := a.authorizer.authAuthorizer.Authorize(ctx, attr)
|
||||
if err != nil {
|
||||
return types.NewErr("error in authorization check: %v", err)
|
||||
}
|
||||
return newDecision(decision, reason)
|
||||
return newDecision(decision, err, reason)
|
||||
}
|
||||
|
||||
type groupCheckVal struct {
|
||||
@ -516,18 +560,16 @@ func (a resourceCheckVal) Authorize(ctx context.Context, verb string) ref.Val {
|
||||
User: a.groupCheck.authorizer.userInfo,
|
||||
}
|
||||
decision, reason, err := a.groupCheck.authorizer.authAuthorizer.Authorize(ctx, attr)
|
||||
if err != nil {
|
||||
return types.NewErr("error in authorization check: %v", err)
|
||||
}
|
||||
return newDecision(decision, reason)
|
||||
return newDecision(decision, err, reason)
|
||||
}
|
||||
|
||||
func newDecision(authDecision authorizer.Decision, reason string) decisionVal {
|
||||
return decisionVal{receiverOnlyObjectVal: receiverOnlyVal(DecisionType), authDecision: authDecision, reason: reason}
|
||||
func newDecision(authDecision authorizer.Decision, err error, reason string) decisionVal {
|
||||
return decisionVal{receiverOnlyObjectVal: receiverOnlyVal(DecisionType), authDecision: authDecision, err: err, reason: reason}
|
||||
}
|
||||
|
||||
type decisionVal struct {
|
||||
receiverOnlyObjectVal
|
||||
err error
|
||||
authDecision authorizer.Decision
|
||||
reason string
|
||||
}
|
||||
|
Reference in New Issue
Block a user