33 lines
793 B
Go
33 lines
793 B
Go
package ape
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
apechain "git.frostfs.info/TrueCloudLab/policy-engine/pkg/chain"
|
|
)
|
|
|
|
// ChainRouterError is returned when chain router validation prevents
|
|
// the APE request from being processed (no rule found, access denied, etc.).
|
|
type ChainRouterError struct {
|
|
operation string
|
|
status apechain.Status
|
|
}
|
|
|
|
func (e *ChainRouterError) Error() string {
|
|
return fmt.Sprintf("access to operation %s is denied by access policy engine: %s", e.Operation(), e.Status())
|
|
}
|
|
|
|
func (e *ChainRouterError) Operation() string {
|
|
return e.operation
|
|
}
|
|
|
|
func (e *ChainRouterError) Status() apechain.Status {
|
|
return e.status
|
|
}
|
|
|
|
func newChainRouterError(operation string, status apechain.Status) *ChainRouterError {
|
|
return &ChainRouterError{
|
|
operation: operation,
|
|
status: status,
|
|
}
|
|
}
|