mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 00:11:04 +00:00 
			
		
		
		
	- Use the forked [binding](https://code.forgejo.org/go-chi/binding) library. This library has two benefits, it removes the usage of `github.com/goccy/go-json` (has no benefit as the minimo library is also using it). It adds the `TrimSpace` feature, which will during the binding part trim the spaces around the value it got from the form, this is done before validation.
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2014 The Gogs Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package forms
 | 
						|
 | 
						|
import (
 | 
						|
	"net/http"
 | 
						|
 | 
						|
	"code.gitea.io/gitea/modules/structs"
 | 
						|
	"code.gitea.io/gitea/modules/web/middleware"
 | 
						|
	"code.gitea.io/gitea/services/context"
 | 
						|
 | 
						|
	"code.forgejo.org/go-chi/binding"
 | 
						|
)
 | 
						|
 | 
						|
// AdminCreateUserForm form for admin to create user
 | 
						|
type AdminCreateUserForm struct {
 | 
						|
	LoginType          string `binding:"Required"`
 | 
						|
	LoginName          string
 | 
						|
	UserName           string `binding:"Required;Username;MaxSize(40)"`
 | 
						|
	Email              string `binding:"Required;EmailForAdmin;MaxSize(254)"`
 | 
						|
	Password           string `binding:"MaxSize(255)"`
 | 
						|
	SendNotify         bool
 | 
						|
	MustChangePassword bool
 | 
						|
	Visibility         structs.VisibleType
 | 
						|
}
 | 
						|
 | 
						|
// Validate validates form fields
 | 
						|
func (f *AdminCreateUserForm) Validate(req *http.Request, errs binding.Errors) binding.Errors {
 | 
						|
	ctx := context.GetValidateContext(req)
 | 
						|
	return middleware.Validate(errs, ctx.Data, f, ctx.Locale)
 | 
						|
}
 | 
						|
 | 
						|
// AdminEditUserForm form for admin to create user
 | 
						|
type AdminEditUserForm struct {
 | 
						|
	LoginType               string `binding:"Required"`
 | 
						|
	UserName                string `binding:"Username;MaxSize(40)"`
 | 
						|
	LoginName               string
 | 
						|
	FullName                string `binding:"MaxSize(100)"`
 | 
						|
	Email                   string `binding:"Required;EmailForAdmin;MaxSize(254)"`
 | 
						|
	Password                string `binding:"MaxSize(255)"`
 | 
						|
	Website                 string `binding:"ValidUrl;MaxSize(255)"`
 | 
						|
	Location                string `binding:"MaxSize(50)"`
 | 
						|
	Language                string `binding:"MaxSize(5)"`
 | 
						|
	Pronouns                string `binding:"MaxSize(50)"`
 | 
						|
	MaxRepoCreation         int
 | 
						|
	Active                  bool
 | 
						|
	Admin                   bool
 | 
						|
	Restricted              bool
 | 
						|
	AllowGitHook            bool
 | 
						|
	AllowImportLocal        bool
 | 
						|
	AllowCreateOrganization bool
 | 
						|
	ProhibitLogin           bool
 | 
						|
	Reset2FA                bool `form:"reset_2fa"`
 | 
						|
	Visibility              structs.VisibleType
 | 
						|
}
 | 
						|
 | 
						|
// Validate validates form fields
 | 
						|
func (f *AdminEditUserForm) Validate(req *http.Request, errs binding.Errors) binding.Errors {
 | 
						|
	ctx := context.GetValidateContext(req)
 | 
						|
	return middleware.Validate(errs, ctx.Data, f, ctx.Locale)
 | 
						|
}
 | 
						|
 | 
						|
// AdminDashboardForm form for admin dashboard operations
 | 
						|
type AdminDashboardForm struct {
 | 
						|
	Op   string `binding:"required"`
 | 
						|
	From string
 | 
						|
}
 | 
						|
 | 
						|
// Validate validates form fields
 | 
						|
func (f *AdminDashboardForm) Validate(req *http.Request, errs binding.Errors) binding.Errors {
 | 
						|
	ctx := context.GetValidateContext(req)
 | 
						|
	return middleware.Validate(errs, ctx.Data, f, ctx.Locale)
 | 
						|
}
 |