-
Notifications
You must be signed in to change notification settings - Fork 11.9k
/
errors.go
62 lines (49 loc) · 1.58 KB
/
errors.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package accesscontrol
import (
"errors"
"fmt"
)
var (
ErrFixedRolePrefixMissing = errors.New("fixed role should be prefixed with '" + FixedRolePrefix + "'")
ErrInvalidBuiltinRole = errors.New("built-in role is not valid")
ErrNoneRoleAssignment = errors.New("none role cannot receive permissions")
ErrInvalidScope = errors.New("invalid scope")
ErrResolverNotFound = errors.New("no resolver found")
ErrPluginIDRequired = errors.New("plugin ID is required")
ErrRoleNotFound = errors.New("role not found")
)
type ErrorInvalidRole struct{}
func (e *ErrorInvalidRole) Error() string {
return "role is invalid"
}
type ErrorRolePrefixMissing struct {
Role string
Prefixes []string
}
func (e *ErrorRolePrefixMissing) Error() string {
return fmt.Sprintf("expected role '%s' to be prefixed with any of '%v'", e.Role, e.Prefixes)
}
func (e *ErrorRolePrefixMissing) Unwrap() error {
return &ErrorInvalidRole{}
}
type ErrorActionPrefixMissing struct {
Action string
Prefixes []string
}
func (e *ErrorActionPrefixMissing) Error() string {
return fmt.Sprintf("expected action '%s' to be prefixed with any of '%v'", e.Action, e.Prefixes)
}
func (e *ErrorActionPrefixMissing) Unwrap() error {
return &ErrorInvalidRole{}
}
type ErrorScopeTarget struct {
Action string
Scope string
ExpectedScope string
}
func (e *ErrorScopeTarget) Error() string {
return fmt.Sprintf("expected action '%s' to be scoped with '%v', found '%v'", e.Action, e.ExpectedScope, e.Scope)
}
func (e *ErrorScopeTarget) Unwrap() error {
return &ErrorInvalidRole{}
}