code.gitea.io/gitea@v1.19.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  	AvatarURL                 string `json:"avatar_url"`
    12  	Description               string `json:"description"`
    13  	Website                   string `json:"website"`
    14  	Location                  string `json:"location"`
    15  	Visibility                string `json:"visibility"`
    16  	RepoAdminChangeTeamAccess bool   `json:"repo_admin_change_team_access"`
    17  	// deprecated
    18  	UserName string `json:"username"`
    19  }
    20  
    21  // OrganizationPermissions list different users permissions on an organization
    22  type OrganizationPermissions struct {
    23  	IsOwner             bool `json:"is_owner"`
    24  	IsAdmin             bool `json:"is_admin"`
    25  	CanWrite            bool `json:"can_write"`
    26  	CanRead             bool `json:"can_read"`
    27  	CanCreateRepository bool `json:"can_create_repository"`
    28  }
    29  
    30  // CreateOrgOption options for creating an organization
    31  type CreateOrgOption struct {
    32  	// required: true
    33  	UserName    string `json:"username" binding:"Required;Username;MaxSize(40)"`
    34  	FullName    string `json:"full_name" binding:"MaxSize(100)"`
    35  	Description string `json:"description" binding:"MaxSize(255)"`
    36  	Website     string `json:"website" binding:"ValidUrl;MaxSize(255)"`
    37  	Location    string `json:"location" binding:"MaxSize(50)"`
    38  	// possible values are `public` (default), `limited` or `private`
    39  	// enum: public,limited,private
    40  	Visibility                string `json:"visibility" binding:"In(,public,limited,private)"`
    41  	RepoAdminChangeTeamAccess bool   `json:"repo_admin_change_team_access"`
    42  }
    43  
    44  // TODO: make EditOrgOption fields optional after https://gitea.com/go-chi/binding/pulls/5 got merged
    45  
    46  // EditOrgOption options for editing an organization
    47  type EditOrgOption struct {
    48  	FullName    string `json:"full_name" binding:"MaxSize(100)"`
    49  	Description string `json:"description" binding:"MaxSize(255)"`
    50  	Website     string `json:"website" binding:"ValidUrl;MaxSize(255)"`
    51  	Location    string `json:"location" binding:"MaxSize(50)"`
    52  	// possible values are `public`, `limited` or `private`
    53  	// enum: public,limited,private
    54  	Visibility                string `json:"visibility" binding:"In(,public,limited,private)"`
    55  	RepoAdminChangeTeamAccess *bool  `json:"repo_admin_change_team_access"`
    56  }