34 lines
793 B
Go
34 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,
|
||
|
}
|
||
|
}
|