mirror of
https://github.com/harness/drone.git
synced 2025-05-02 21:55:27 +00:00
This change is adding the concept of Paths. A repository and space always have a Primary Path which always is represents the ancestry to the root space. All access history / resource visibility / child listings / UI traversal / etc. is done via that path. Additionally, repos and spaces can have Alias Paths, which as the name states are aliases. via the primary path. They sole impact is that a space or repo can be reached via different paths from the UI / rest apis / git apis. This fulfills two major purposes: - Customers can rename or move projects and spaces without breaking any existing references from CI pipeliens / code bases / local repos / ... - Customer can create shorter aliases for important repos when in harness embeded mode! (acc/org/proj/repo can be shortened to acc/repo, or acc/repo' Apart from the path changes, this PR adds: Improved User facing errors Improved internal error handling and wrapping update / rename operation for repo and space path list / delete / create operation for repo and space
49 lines
1.5 KiB
Go
49 lines
1.5 KiB
Go
// Copyright 2022 Harness Inc. All rights reserved.
|
|
// Use of this source code is governed by the Polyform Free Trial License
|
|
// that can be found in the LICENSE.md file for this repository.
|
|
|
|
package enum
|
|
|
|
// Represents the different types of resources that can be guarded with permissions.
|
|
type ResourceType string
|
|
|
|
const (
|
|
ResourceTypeSpace ResourceType = "SPACE"
|
|
ResourceTypeRepo ResourceType = "REPOSITORY"
|
|
// ResourceType_Branch ResourceType = "BRANCH"
|
|
)
|
|
|
|
// Represents the available permissions
|
|
type Permission string
|
|
|
|
const (
|
|
// ----- SPACE -----
|
|
PermissionSpaceCreate Permission = "space_create"
|
|
PermissionSpaceView Permission = "space_view"
|
|
PermissionSpaceEdit Permission = "space_edit"
|
|
PermissionSpaceDelete Permission = "space_delete"
|
|
|
|
// ----- REPOSITORY -----
|
|
PermissionRepoCreate Permission = "repository_create"
|
|
PermissionRepoView Permission = "repository_view"
|
|
PermissionRepoEdit Permission = "repository_edit"
|
|
PermissionRepoDelete Permission = "repository_delete"
|
|
|
|
// ----- BRANCH -----
|
|
// PermissionBranchCreate Permission = "branch_create"
|
|
// PermissionBranchView Permission = "branch_view"
|
|
// PermissionBranchEdit Permission = "branch_edit"
|
|
// PermissionBranchDelete Permission = "branch_delete"
|
|
)
|
|
|
|
// Represents the type of the entity requesting permission
|
|
type PrincipalType string
|
|
|
|
const (
|
|
// Represents actions executed by a loged-in user
|
|
PrincipalTypeUser PrincipalType = "USER"
|
|
|
|
// Represents actions executed by an entity with an api key
|
|
PrincipalTypeApiKey PrincipalType = "API_KEY"
|
|
)
|