mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 00:11:04 +00:00 
			
		
		
		
	- Add site-wide option DEFAULT_KEEP_EMAIL_PRIVATE. - Add the new option to the install and admin/config pages. - Add the new option to app.ini in the service section. - Add the new option to the settings struct. - Add English text strings to i18n. - Add field KeepEmailPrivate to user struct. - Add field KeepEmailPrivate to user form. - Add option to UI. - Add using noreply email address if user has "Keep Email Private". An email address <LowerName>@<NO_REPLY_ADDRESS> is now used in commit messages (and hopefully all other git log relevant places). The change relies on the fact that git commands should use user.NetGitSig(). - Add hiding of email address in UI, if user has set "Keep Email Private". - Add condition to show email address only on explore/users and user pages, if user has not set "Keep Email Private". - Add noreply email in API if set "Keep Email Private". - Add a new service setting NO_REPLY_ADDRESS. The value of this setting is used as the domain part for the user's email address in git log, iff he decides to keep his email address private. If the user decides to keep his email address private and this option is not set 'noreply.example.org' is used, which no MTA should send email to. Add NO_REPLY_ADDRESS to conf/app.ini.
		
			
				
	
	
		
			175 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2014 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.
 | 
						|
 | 
						|
package auth
 | 
						|
 | 
						|
import (
 | 
						|
	"mime/multipart"
 | 
						|
 | 
						|
	"github.com/go-macaron/binding"
 | 
						|
	"gopkg.in/macaron.v1"
 | 
						|
)
 | 
						|
 | 
						|
// InstallForm form for installation page
 | 
						|
type InstallForm struct {
 | 
						|
	DbType   string `binding:"Required"`
 | 
						|
	DbHost   string
 | 
						|
	DbUser   string
 | 
						|
	DbPasswd string
 | 
						|
	DbName   string
 | 
						|
	SSLMode  string
 | 
						|
	DbPath   string
 | 
						|
 | 
						|
	AppName      string `binding:"Required" locale:"install.app_name"`
 | 
						|
	RepoRootPath string `binding:"Required"`
 | 
						|
	LFSRootPath  string
 | 
						|
	RunUser      string `binding:"Required"`
 | 
						|
	Domain       string `binding:"Required"`
 | 
						|
	SSHPort      int
 | 
						|
	HTTPPort     string `binding:"Required"`
 | 
						|
	AppURL       string `binding:"Required"`
 | 
						|
	LogRootPath  string `binding:"Required"`
 | 
						|
 | 
						|
	SMTPHost        string
 | 
						|
	SMTPFrom        string
 | 
						|
	SMTPEmail       string `binding:"OmitEmpty;Email;MaxSize(254)" locale:"install.mailer_user"`
 | 
						|
	SMTPPasswd      string
 | 
						|
	RegisterConfirm bool
 | 
						|
	MailNotify      bool
 | 
						|
 | 
						|
	OfflineMode             bool
 | 
						|
	DisableGravatar         bool
 | 
						|
	EnableFederatedAvatar   bool
 | 
						|
	DisableRegistration     bool
 | 
						|
	EnableCaptcha           bool
 | 
						|
	RequireSignInView       bool
 | 
						|
	DefaultKeepEmailPrivate bool
 | 
						|
	NoReplyAddress          string
 | 
						|
 | 
						|
	AdminName          string `binding:"OmitEmpty;AlphaDashDot;MaxSize(30)" locale:"install.admin_name"`
 | 
						|
	AdminPasswd        string `binding:"OmitEmpty;MaxSize(255)" locale:"install.admin_password"`
 | 
						|
	AdminConfirmPasswd string
 | 
						|
	AdminEmail         string `binding:"OmitEmpty;MinSize(3);MaxSize(254);Include(@)" locale:"install.admin_email"`
 | 
						|
}
 | 
						|
 | 
						|
// Validate valideates the fields
 | 
						|
func (f *InstallForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 | 
						|
	return validate(errs, ctx.Data, f, ctx.Locale)
 | 
						|
}
 | 
						|
 | 
						|
//    _____   ____ _________________ ___
 | 
						|
//   /  _  \ |    |   \__    ___/   |   \
 | 
						|
//  /  /_\  \|    |   / |    | /    ~    \
 | 
						|
// /    |    \    |  /  |    | \    Y    /
 | 
						|
// \____|__  /______/   |____|  \___|_  /
 | 
						|
//         \/                         \/
 | 
						|
 | 
						|
// RegisterForm form for registering
 | 
						|
type RegisterForm struct {
 | 
						|
	UserName string `binding:"Required;AlphaDashDot;MaxSize(35)"`
 | 
						|
	Email    string `binding:"Required;Email;MaxSize(254)"`
 | 
						|
	Password string `binding:"Required;MaxSize(255)"`
 | 
						|
	Retype   string
 | 
						|
}
 | 
						|
 | 
						|
// Validate valideates the fields
 | 
						|
func (f *RegisterForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 | 
						|
	return validate(errs, ctx.Data, f, ctx.Locale)
 | 
						|
}
 | 
						|
 | 
						|
// SignInForm form for signing in
 | 
						|
type SignInForm struct {
 | 
						|
	UserName string `binding:"Required;MaxSize(254)"`
 | 
						|
	Password string `binding:"Required;MaxSize(255)"`
 | 
						|
	Remember bool
 | 
						|
}
 | 
						|
 | 
						|
// Validate valideates the fields
 | 
						|
func (f *SignInForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 | 
						|
	return validate(errs, ctx.Data, f, ctx.Locale)
 | 
						|
}
 | 
						|
 | 
						|
//   __________________________________________.___ _______    ________  _________
 | 
						|
//  /   _____/\_   _____/\__    ___/\__    ___/|   |\      \  /  _____/ /   _____/
 | 
						|
//  \_____  \  |    __)_   |    |     |    |   |   |/   |   \/   \  ___ \_____  \
 | 
						|
//  /        \ |        \  |    |     |    |   |   /    |    \    \_\  \/        \
 | 
						|
// /_______  //_______  /  |____|     |____|   |___\____|__  /\______  /_______  /
 | 
						|
//         \/         \/                                   \/        \/        \/
 | 
						|
 | 
						|
// UpdateProfileForm form for updating profile
 | 
						|
type UpdateProfileForm struct {
 | 
						|
	Name             string `binding:"OmitEmpty;MaxSize(35)"`
 | 
						|
	FullName         string `binding:"MaxSize(100)"`
 | 
						|
	Email            string `binding:"Required;Email;MaxSize(254)"`
 | 
						|
	KeepEmailPrivate bool
 | 
						|
	Website          string `binding:"Url;MaxSize(100)"`
 | 
						|
	Location         string `binding:"MaxSize(50)"`
 | 
						|
}
 | 
						|
 | 
						|
// Validate valideates the fields
 | 
						|
func (f *UpdateProfileForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 | 
						|
	return validate(errs, ctx.Data, f, ctx.Locale)
 | 
						|
}
 | 
						|
 | 
						|
// Avatar types
 | 
						|
const (
 | 
						|
	AvatarLocal  string = "local"
 | 
						|
	AvatarByMail string = "bymail"
 | 
						|
)
 | 
						|
 | 
						|
// AvatarForm form for changing avatar
 | 
						|
type AvatarForm struct {
 | 
						|
	Source      string
 | 
						|
	Avatar      *multipart.FileHeader
 | 
						|
	Gravatar    string `binding:"OmitEmpty;Email;MaxSize(254)"`
 | 
						|
	Federavatar bool
 | 
						|
}
 | 
						|
 | 
						|
// Validate valideates the fields
 | 
						|
func (f *AvatarForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 | 
						|
	return validate(errs, ctx.Data, f, ctx.Locale)
 | 
						|
}
 | 
						|
 | 
						|
// AddEmailForm form for adding new email
 | 
						|
type AddEmailForm struct {
 | 
						|
	Email string `binding:"Required;Email;MaxSize(254)"`
 | 
						|
}
 | 
						|
 | 
						|
// Validate valideates the fields
 | 
						|
func (f *AddEmailForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 | 
						|
	return validate(errs, ctx.Data, f, ctx.Locale)
 | 
						|
}
 | 
						|
 | 
						|
// ChangePasswordForm form for changing password
 | 
						|
type ChangePasswordForm struct {
 | 
						|
	OldPassword string `form:"old_password" binding:"Required;MinSize(1);MaxSize(255)"`
 | 
						|
	Password    string `form:"password" binding:"Required;MaxSize(255)"`
 | 
						|
	Retype      string `form:"retype"`
 | 
						|
}
 | 
						|
 | 
						|
// Validate valideates the fields
 | 
						|
func (f *ChangePasswordForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 | 
						|
	return validate(errs, ctx.Data, f, ctx.Locale)
 | 
						|
}
 | 
						|
 | 
						|
// AddSSHKeyForm form for adding SSH key
 | 
						|
type AddSSHKeyForm struct {
 | 
						|
	Title   string `binding:"Required;MaxSize(50)"`
 | 
						|
	Content string `binding:"Required"`
 | 
						|
}
 | 
						|
 | 
						|
// Validate valideates the fields
 | 
						|
func (f *AddSSHKeyForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 | 
						|
	return validate(errs, ctx.Data, f, ctx.Locale)
 | 
						|
}
 | 
						|
 | 
						|
// NewAccessTokenForm form for creating access token
 | 
						|
type NewAccessTokenForm struct {
 | 
						|
	Name string `binding:"Required"`
 | 
						|
}
 | 
						|
 | 
						|
// Validate valideates the fields
 | 
						|
func (f *NewAccessTokenForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 | 
						|
	return validate(errs, ctx.Data, f, ctx.Locale)
 | 
						|
}
 |