2016-11-07 14:53:13 +01:00
// Copyright 2015 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
2019-05-11 18:21:34 +08:00
package structs
2016-11-07 14:53:13 +01:00
2017-11-12 23:02:25 -08:00
// Organization represents an organization
2016-11-07 14:53:13 +01:00
type Organization struct {
2019-09-23 22:08:03 +02:00
ID int64 ` json:"id" `
UserName string ` json:"username" `
FullName string ` json:"full_name" `
AvatarURL string ` json:"avatar_url" `
Description string ` json:"description" `
Website string ` json:"website" `
Location string ` json:"location" `
Visibility string ` json:"visibility" `
RepoAdminChangeTeamAccess bool ` json:"repo_admin_change_team_access" `
2016-11-07 14:53:13 +01:00
}
2022-01-10 04:32:37 -05:00
// OrganizationPermissions list different users permissions on an organization
2021-10-12 12:47:19 +02:00
type OrganizationPermissions struct {
IsOwner bool ` json:"is_owner" `
IsAdmin bool ` json:"is_admin" `
CanWrite bool ` json:"can_write" `
CanRead bool ` json:"can_read" `
CanCreateRepository bool ` json:"can_create_repository" `
}
2017-11-12 23:02:25 -08:00
// CreateOrgOption options for creating an organization
2016-11-07 14:53:13 +01:00
type CreateOrgOption struct {
2017-11-12 23:02:25 -08:00
// required: true
2019-05-30 13:57:55 -04:00
UserName string ` json:"username" binding:"Required" `
FullName string ` json:"full_name" `
2021-05-02 21:03:15 +02:00
Description string ` json:"description" binding:"MaxSize(255)" `
Website string ` json:"website" binding:"ValidUrl;MaxSize(255)" `
Location string ` json:"location" binding:"MaxSize(50)" `
2019-05-30 13:57:55 -04:00
// possible values are `public` (default), `limited` or `private`
// enum: public,limited,private
2019-09-23 22:08:03 +02:00
Visibility string ` json:"visibility" binding:"In(,public,limited,private)" `
RepoAdminChangeTeamAccess bool ` json:"repo_admin_change_team_access" `
2016-11-07 14:53:13 +01:00
}
2021-06-18 01:24:55 +02:00
// TODO: make EditOrgOption fields optional after https://gitea.com/go-chi/binding/pulls/5 got merged
2017-11-12 23:02:25 -08:00
// EditOrgOption options for editing an organization
2016-11-07 14:53:13 +01:00
type EditOrgOption struct {
FullName string ` json:"full_name" `
2021-05-02 21:03:15 +02:00
Description string ` json:"description" binding:"MaxSize(255)" `
Website string ` json:"website" binding:"ValidUrl;MaxSize(255)" `
Location string ` json:"location" binding:"MaxSize(50)" `
2019-05-30 13:57:55 -04:00
// possible values are `public`, `limited` or `private`
// enum: public,limited,private
2019-09-23 22:08:03 +02:00
Visibility string ` json:"visibility" binding:"In(,public,limited,private)" `
2021-06-18 01:24:55 +02:00
RepoAdminChangeTeamAccess * bool ` json:"repo_admin_change_team_access" `
2016-11-07 14:53:13 +01:00
}