// Copyright 2022 The Gitea Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. package auth import ( "fmt" "strings" ) // AccessTokenScope represents the scope for an access token. type AccessTokenScope string const ( AccessTokenScopeAll = "all" AccessTokenScopeRepo = "repo" AccessTokenScopeRepoStatus = "repo:status" AccessTokenScopePublicRepo = "public_repo" AccessTokenScopeAdminOrg = "admin:org" AccessTokenScopeWriteOrg = "write:org" AccessTokenScopeReadOrg = "read:org" AccessTokenScopeAdminPublicKey = "admin:public_key" AccessTokenScopeWritePublicKey = "write:public_key" AccessTokenScopeReadPublicKey = "read:public_key" AccessTokenScopeAdminRepoHook = "admin:repo_hook" AccessTokenScopeWriteRepoHook = "write:repo_hook" AccessTokenScopeReadRepoHook = "read:repo_hook" AccessTokenScopeAdminOrgHook = "admin:org_hook" AccessTokenScopeNotification = "notification" AccessTokenScopeUser = "user" AccessTokenScopeReadUser = "read:user" AccessTokenScopeUserEmail = "user:email" AccessTokenScopeUserFollow = "user:follow" AccessTokenScopeDeleteRepo = "delete_repo" AccessTokenScopePackage = "package" AccessTokenScopeWritePackage = "write:package" AccessTokenScopeReadPackage = "read:package" AccessTokenScopeDeletePackage = "delete:package" AccessTokenScopeAdminGPGKey = "admin:gpg_key" AccessTokenScopeWriteGPGKey = "write:gpg_key" AccessTokenScopeReadGPGKey = "read:gpg_key" AccessTokenScopeSudo = "sudo" ) // AllAccessTokenScopes contains all access token scopes. // The order is important: parent scope must precedes child scopes. var AllAccessTokenScopes = []string{ AccessTokenScopeRepo, AccessTokenScopeRepoStatus, AccessTokenScopePublicRepo, AccessTokenScopeAdminOrg, AccessTokenScopeWriteOrg, AccessTokenScopeReadOrg, AccessTokenScopeAdminPublicKey, AccessTokenScopeWritePublicKey, AccessTokenScopeReadPublicKey, AccessTokenScopeAdminRepoHook, AccessTokenScopeWriteRepoHook, AccessTokenScopeReadRepoHook, AccessTokenScopeAdminOrgHook, AccessTokenScopeNotification, AccessTokenScopeUser, AccessTokenScopeReadUser, AccessTokenScopeUserEmail, AccessTokenScopeUserFollow, AccessTokenScopeDeleteRepo, AccessTokenScopePackage, AccessTokenScopeWritePackage, AccessTokenScopeReadPackage, AccessTokenScopeDeletePackage, AccessTokenScopeAdminGPGKey, AccessTokenScopeWriteGPGKey, AccessTokenScopeReadGPGKey, AccessTokenScopeSudo, } // AccessTokenScopeBitmap represents a bitmap of access token scopes. type AccessTokenScopeBitmap uint64 // AccessTokenScopeAllBitmap is the bitmap of all access token scopes. var AccessTokenScopeAllBitmap AccessTokenScopeBitmap = 1<