You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

access_mode.go 1.1KB

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