| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package types
- type PermissionScope string
- const (
- UserScope PermissionScope = "user"
- ProjectScope PermissionScope = "project"
- ClusterScope PermissionScope = "cluster"
- RegistryScope PermissionScope = "registry"
- NamespaceScope PermissionScope = "namespace"
- SettingsScope PermissionScope = "settings"
- ReleaseScope PermissionScope = "release"
- )
- type NameOrUInt struct {
- Name string `json:"name"`
- UInt uint `json:"uint"`
- }
- type PolicyDocument struct {
- Scope PermissionScope `json:"scope"`
- Resources []NameOrUInt `json:"resources"`
- Verbs []APIVerb `json:"verbs"`
- Children map[PermissionScope]*PolicyDocument `json:"children"`
- }
- type ScopeTree map[PermissionScope]ScopeTree
- /* ScopeHeirarchy describes the tree of scopes, i.e. Cluster, Registry, and Settings
- are children of Project, Namespace is a child of Cluster, etc.
- */
- var ScopeHeirarchy = ScopeTree{
- ProjectScope: {
- ClusterScope: {
- NamespaceScope: {
- ReleaseScope: {},
- },
- },
- RegistryScope: {},
- SettingsScope: {},
- },
- }
- type Policy []*PolicyDocument
- var AdminPolicy = []*PolicyDocument{
- {
- Scope: ProjectScope,
- Verbs: ReadWriteVerbGroup(),
- },
- }
- var DeveloperPolicy = []*PolicyDocument{
- {
- Scope: ProjectScope,
- Verbs: ReadWriteVerbGroup(),
- Children: map[PermissionScope]*PolicyDocument{
- SettingsScope: {
- Scope: SettingsScope,
- Verbs: ReadVerbGroup(),
- },
- },
- },
- }
- var ViewerPolicy = []*PolicyDocument{
- {
- Scope: ProjectScope,
- Verbs: ReadVerbGroup(),
- Children: map[PermissionScope]*PolicyDocument{
- SettingsScope: {
- Scope: SettingsScope,
- Verbs: []APIVerb{},
- },
- },
- },
- }
|