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