2016-11-07 14:53:13 +01:00
// Copyright 2015 The Gogs Authors. All rights reserved.
2022-11-27 13:20:29 -05:00
// SPDX-License-Identifier: MIT
2016-11-07 14:53:13 +01:00
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" `
2022-09-29 05:27:33 +02:00
Name string ` json:"name" `
2019-09-23 22:08:03 +02:00
FullName string ` json:"full_name" `
2023-07-25 10:26:27 +02:00
Email string ` json:"email" `
2019-09-23 22:08:03 +02:00
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" `
2022-09-29 05:27:33 +02:00
// deprecated
UserName string ` json:"username" `
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
2023-04-17 23:35:57 +08:00
UserName string ` json:"username" binding:"Required;Username;MaxSize(40)" `
FullName string ` json:"full_name" binding:"MaxSize(100)" `
2023-07-25 10:26:27 +02:00
Email string ` json:"email" binding:"MaxSize(255)" `
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 {
2023-04-17 23:35:57 +08:00
FullName string ` json:"full_name" binding:"MaxSize(100)" `
2023-07-25 10:26:27 +02:00
Email string ` json:"email" binding:"MaxSize(255)" `
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
}