2016-11-07 14:53:13 +01:00
// Copyright 2015 The Gogs Authors. All rights reserved.
2019-02-25 20:56:47 +02:00
// Copyright 2019 The Gitea 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
2023-02-16 17:32:01 +01:00
import "time"
2016-11-29 09:09:17 +01:00
// CreateUserOption create user options
2016-11-07 14:53:13 +01:00
type CreateUserOption struct {
2018-03-06 02:22:16 +01:00
SourceID int64 ` json:"source_id" `
2017-08-21 13:13:47 +02:00
LoginName string ` json:"login_name" `
2017-11-12 23:02:25 -08:00
// required: true
2022-11-04 17:04:08 +08:00
Username string ` json:"username" binding:"Required;Username;MaxSize(40)" `
2017-08-21 13:13:47 +02:00
FullName string ` json:"full_name" binding:"MaxSize(100)" `
2017-11-12 23:02:25 -08:00
// required: true
// swagger:strfmt email
2023-12-19 10:32:45 +08:00
Email string ` json:"email" binding:"Required;Email;MaxSize(254)" `
Password string ` json:"password" binding:"MaxSize(255)" `
2019-02-27 13:37:57 -06:00
MustChangePassword * bool ` json:"must_change_password" `
2019-02-25 20:56:47 +02:00
SendNotify bool ` json:"send_notify" `
2022-04-29 21:38:11 +02:00
Restricted * bool ` json:"restricted" `
2021-06-26 22:53:14 +03:00
Visibility string ` json:"visibility" binding:"In(,public,limited,private)" `
2023-02-16 17:32:01 +01:00
// For explicitly setting the user creation timestamp. Useful when users are
// migrated from other systems. When omitted, the user's creation timestamp
// will be set to "now".
Created * time . Time ` json:"created_at" `
2016-11-07 14:53:13 +01:00
}
2016-11-29 09:09:17 +01:00
// EditUserOption edit user options
2016-11-07 14:53:13 +01:00
type EditUserOption struct {
2017-11-12 23:02:25 -08:00
// required: true
2020-11-20 02:56:42 +01:00
SourceID int64 ` json:"source_id" `
// required: true
LoginName string ` json:"login_name" binding:"Required" `
2017-11-12 23:02:25 -08:00
// swagger:strfmt email
2020-11-20 02:56:42 +01:00
Email * string ` json:"email" binding:"MaxSize(254)" `
FullName * string ` json:"full_name" binding:"MaxSize(100)" `
Password string ` json:"password" binding:"MaxSize(255)" `
MustChangePassword * bool ` json:"must_change_password" `
2021-05-02 21:03:15 +02:00
Website * string ` json:"website" binding:"OmitEmpty;ValidUrl;MaxSize(255)" `
2020-11-20 02:56:42 +01:00
Location * string ` json:"location" binding:"MaxSize(50)" `
2021-05-02 21:03:15 +02:00
Description * string ` json:"description" binding:"MaxSize(255)" `
2020-11-20 02:56:42 +01:00
Active * bool ` json:"active" `
Admin * bool ` json:"admin" `
AllowGitHook * bool ` json:"allow_git_hook" `
AllowImportLocal * bool ` json:"allow_import_local" `
MaxRepoCreation * int ` json:"max_repo_creation" `
ProhibitLogin * bool ` json:"prohibit_login" `
AllowCreateOrganization * bool ` json:"allow_create_organization" `
2021-02-18 09:25:35 +01:00
Restricted * bool ` json:"restricted" `
2021-06-26 22:53:14 +03:00
Visibility string ` json:"visibility" binding:"In(,public,limited,private)" `
2016-11-07 14:53:13 +01:00
}