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.

org.go 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // Copyright 2015 The Gogs Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package structs
  4. // Organization represents an organization
  5. type Organization struct {
  6. ID int64 `json:"id"`
  7. Name string `json:"name"`
  8. FullName string `json:"full_name"`
  9. Email string `json:"email"`
  10. AvatarURL string `json:"avatar_url"`
  11. Description string `json:"description"`
  12. Website string `json:"website"`
  13. Location string `json:"location"`
  14. Visibility string `json:"visibility"`
  15. RepoAdminChangeTeamAccess bool `json:"repo_admin_change_team_access"`
  16. // deprecated
  17. UserName string `json:"username"`
  18. }
  19. // OrganizationPermissions list different users permissions on an organization
  20. type OrganizationPermissions struct {
  21. IsOwner bool `json:"is_owner"`
  22. IsAdmin bool `json:"is_admin"`
  23. CanWrite bool `json:"can_write"`
  24. CanRead bool `json:"can_read"`
  25. CanCreateRepository bool `json:"can_create_repository"`
  26. }
  27. // CreateOrgOption options for creating an organization
  28. type CreateOrgOption struct {
  29. // required: true
  30. UserName string `json:"username" binding:"Required;Username;MaxSize(40)"`
  31. FullName string `json:"full_name" binding:"MaxSize(100)"`
  32. Email string `json:"email" binding:"MaxSize(255)"`
  33. Description string `json:"description" binding:"MaxSize(255)"`
  34. Website string `json:"website" binding:"ValidUrl;MaxSize(255)"`
  35. Location string `json:"location" binding:"MaxSize(50)"`
  36. // possible values are `public` (default), `limited` or `private`
  37. // enum: public,limited,private
  38. Visibility string `json:"visibility" binding:"In(,public,limited,private)"`
  39. RepoAdminChangeTeamAccess bool `json:"repo_admin_change_team_access"`
  40. }
  41. // TODO: make EditOrgOption fields optional after https://gitea.com/go-chi/binding/pulls/5 got merged
  42. // EditOrgOption options for editing an organization
  43. type EditOrgOption struct {
  44. FullName string `json:"full_name" binding:"MaxSize(100)"`
  45. Email string `json:"email" binding:"MaxSize(255)"`
  46. Description string `json:"description" binding:"MaxSize(255)"`
  47. Website string `json:"website" binding:"ValidUrl;MaxSize(255)"`
  48. Location string `json:"location" binding:"MaxSize(50)"`
  49. // possible values are `public`, `limited` or `private`
  50. // enum: public,limited,private
  51. Visibility string `json:"visibility" binding:"In(,public,limited,private)"`
  52. RepoAdminChangeTeamAccess *bool `json:"repo_admin_change_team_access"`
  53. }