code.gitea.io/gitea@v1.21.7/models/perm/access_mode.go (about) 1 // Copyright 2019 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package perm 5 6 import ( 7 "fmt" 8 ) 9 10 // AccessMode specifies the users access mode 11 type AccessMode int 12 13 const ( 14 // AccessModeNone no access 15 AccessModeNone AccessMode = iota // 0 16 // AccessModeRead read access 17 AccessModeRead // 1 18 // AccessModeWrite write access 19 AccessModeWrite // 2 20 // AccessModeAdmin admin access 21 AccessModeAdmin // 3 22 // AccessModeOwner owner access 23 AccessModeOwner // 4 24 ) 25 26 func (mode AccessMode) String() string { 27 switch mode { 28 case AccessModeRead: 29 return "read" 30 case AccessModeWrite: 31 return "write" 32 case AccessModeAdmin: 33 return "admin" 34 case AccessModeOwner: 35 return "owner" 36 default: 37 return "none" 38 } 39 } 40 41 func (mode AccessMode) LogString() string { 42 return fmt.Sprintf("<AccessMode:%d:%s>", mode, mode.String()) 43 } 44 45 // ParseAccessMode returns corresponding access mode to given permission string. 46 func ParseAccessMode(permission string) AccessMode { 47 switch permission { 48 case "read": 49 return AccessModeRead 50 case "write": 51 return AccessModeWrite 52 case "admin": 53 return AccessModeAdmin 54 default: 55 return AccessModeNone 56 } 57 }