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  }