perms.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package ovpm
  2. import "github.com/cad/ovpm/permset"
  3. // OVPM available permissions.
  4. const (
  5. // User permissions
  6. CreateUserPerm permset.Perm = iota
  7. GetAnyUserPerm
  8. GetSelfPerm
  9. UpdateAnyUserPerm
  10. UpdateSelfPerm
  11. DeleteAnyUserPerm
  12. RenewAnyUserPerm
  13. GenConfigAnyUserPerm
  14. GenConfigSelfPerm
  15. // VPN permissions
  16. GetVPNStatusPerm
  17. InitVPNPerm
  18. UpdateVPNPerm
  19. RestartVPNPerm
  20. // Network permissions
  21. ListNetworksPerm
  22. CreateNetworkPerm
  23. DeleteNetworkPerm
  24. GetNetworkTypesPerm
  25. GetNetworkAssociatedUsersPerm
  26. AssociateNetworkUserPerm
  27. DissociateNetworkUserPerm
  28. )
  29. // AdminPerms returns the list of permissions that admin type user has.
  30. func AdminPerms() []permset.Perm {
  31. return []permset.Perm{
  32. CreateUserPerm,
  33. GetAnyUserPerm,
  34. GetSelfPerm,
  35. UpdateAnyUserPerm,
  36. UpdateSelfPerm,
  37. DeleteAnyUserPerm,
  38. RenewAnyUserPerm,
  39. GenConfigAnyUserPerm,
  40. GenConfigSelfPerm,
  41. GetVPNStatusPerm,
  42. InitVPNPerm,
  43. UpdateVPNPerm,
  44. RestartVPNPerm,
  45. ListNetworksPerm,
  46. CreateNetworkPerm,
  47. DeleteNetworkPerm,
  48. GetNetworkTypesPerm,
  49. GetNetworkAssociatedUsersPerm,
  50. AssociateNetworkUserPerm,
  51. DissociateNetworkUserPerm,
  52. }
  53. }
  54. // UserPerms returns the collection of permissions that the regular users have.
  55. func UserPerms() []permset.Perm {
  56. return []permset.Perm{
  57. GetSelfPerm,
  58. UpdateSelfPerm,
  59. GenConfigSelfPerm,
  60. }
  61. }