2016-11-07 16:53:13 +03:00
// Copyright 2015 The Gogs Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2016-11-07 16:53:13 +03:00
2019-05-11 13:21:34 +03:00
package structs
2016-11-07 16:53:13 +03:00
2017-11-13 10:02:25 +03:00
// Organization represents an organization
2016-11-07 16:53:13 +03:00
type Organization struct {
2019-09-23 23:08:03 +03:00
ID int64 ` json:"id" `
2022-09-29 06:27:33 +03:00
Name string ` json:"name" `
2019-09-23 23:08:03 +03:00
FullName string ` json:"full_name" `
2023-07-25 11:26:27 +03:00
Email string ` json:"email" `
2019-09-23 23:08:03 +03: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 06:27:33 +03:00
// deprecated
UserName string ` json:"username" `
2016-11-07 16:53:13 +03:00
}
2022-01-10 12:32:37 +03:00
// OrganizationPermissions list different users permissions on an organization
2021-10-12 13:47:19 +03: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-13 10:02:25 +03:00
// CreateOrgOption options for creating an organization
2016-11-07 16:53:13 +03:00
type CreateOrgOption struct {
2017-11-13 10:02:25 +03:00
// required: true
2023-04-17 18:35:57 +03:00
UserName string ` json:"username" binding:"Required;Username;MaxSize(40)" `
FullName string ` json:"full_name" binding:"MaxSize(100)" `
2023-07-25 11:26:27 +03:00
Email string ` json:"email" binding:"MaxSize(255)" `
2021-05-02 22:03:15 +03: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 20:57:55 +03:00
// possible values are `public` (default), `limited` or `private`
// enum: public,limited,private
2019-09-23 23:08:03 +03:00
Visibility string ` json:"visibility" binding:"In(,public,limited,private)" `
RepoAdminChangeTeamAccess bool ` json:"repo_admin_change_team_access" `
2016-11-07 16:53:13 +03:00
}
2021-06-18 02:24:55 +03:00
// TODO: make EditOrgOption fields optional after https://gitea.com/go-chi/binding/pulls/5 got merged
2017-11-13 10:02:25 +03:00
// EditOrgOption options for editing an organization
2016-11-07 16:53:13 +03:00
type EditOrgOption struct {
2023-04-17 18:35:57 +03:00
FullName string ` json:"full_name" binding:"MaxSize(100)" `
2023-07-25 11:26:27 +03:00
Email string ` json:"email" binding:"MaxSize(255)" `
2021-05-02 22:03:15 +03: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 20:57:55 +03:00
// possible values are `public`, `limited` or `private`
// enum: public,limited,private
2019-09-23 23:08:03 +03:00
Visibility string ` json:"visibility" binding:"In(,public,limited,private)" `
2021-06-18 02:24:55 +03:00
RepoAdminChangeTeamAccess * bool ` json:"repo_admin_change_team_access" `
2016-11-07 16:53:13 +03:00
}