user

package
v1.20.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2023 License: MIT Imports: 33 Imported by: 96

Documentation

Index

Constants

View Source
const (
	// SettingsKeyHiddenCommentTypes is the setting key for hidden comment types
	SettingsKeyHiddenCommentTypes = "issue.hidden_comment_types"
	// SettingsKeyDiffWhitespaceBehavior is the setting key for whitespace behavior of diff
	SettingsKeyDiffWhitespaceBehavior = "diff.whitespace_behaviour"
	// SettingsKeyShowOutdatedComments is the setting key wether or not to show outdated comments in PRs
	SettingsKeyShowOutdatedComments = "comment_code.show_outdated"
	// UserActivityPubPrivPem is user's private key
	UserActivityPubPrivPem = "activitypub.priv_pem"
	// UserActivityPubPubPem is user's public key
	UserActivityPubPubPem = "activitypub.pub_pem"
)
View Source
const (
	// EmailNotificationsEnabled indicates that the user would like to receive all email notifications except your own
	EmailNotificationsEnabled = "enabled"
	// EmailNotificationsOnMention indicates that the user would like to be notified via email when mentioned.
	EmailNotificationsOnMention = "onmention"
	// EmailNotificationsDisabled indicates that the user would not like to be notified via email.
	EmailNotificationsDisabled = "disabled"
	// EmailNotificationsAndYourOwn indicates that the user would like to receive all email notifications and your own
	EmailNotificationsAndYourOwn = "andyourown"
)
View Source
const (
	ActionsUserID   = -2
	ActionsUserName = "gitea-actions"
	ActionsFullName = "Gitea Actions"
	ActionsEmail    = "teabot@gitea.io"
)
View Source
const SaltByteLength = 16

Note: As of the beginning of 2022, it is recommended to use at least 64 bits of salt, but NIST is already recommending to use to 128 bits. (16 bytes = 16 * 8 = 128 bits)

Variables

View Source
var ErrEmailNotActivated = util.NewInvalidArgumentErrorf("e-mail address has not been activated")

ErrEmailNotActivated e-mail address has not been activated error

View Source
var ErrOpenIDNotExist = util.NewNotExistErrorf("OpenID is unknown")

ErrOpenIDNotExist openid is not known

Functions

func ActivateEmail

func ActivateEmail(email *EmailAddress) error

ActivateEmail activates the email address to given user.

func ActivateUserEmail

func ActivateUserEmail(userID int64, email string, activate bool) (err error)

ActivateUserEmail will change the activated state of an email address, either primary or secondary (all in the email_address table)

func AddEmailAddress

func AddEmailAddress(ctx context.Context, email *EmailAddress) error

AddEmailAddress adds an email address to given user.

func AddEmailAddresses

func AddEmailAddresses(emails []*EmailAddress) error

AddEmailAddresses adds an email address to given user.

func AddUserOpenID

func AddUserOpenID(ctx context.Context, openid *UserOpenID) error

AddUserOpenID adds an pre-verified/normalized OpenID URI to given user. NOTE: make sure openid.URI is normalized already

func BuildCanSeeUserCondition added in v1.17.0

func BuildCanSeeUserCondition(actor *User) builder.Cond

BuildCanSeeUserCondition creates a condition which can be used to restrict results to users/orgs the actor can see

func CountUsers

func CountUsers(opts *CountUserFilter) int64

CountUsers returns number of users.

func CountWrongUserType added in v1.17.4

func CountWrongUserType() (int64, error)

CountWrongUserType count OrgUser who have wrong type

func CreateUser

func CreateUser(u *User, overwriteDefault ...*CreateUserOverwriteOptions) (err error)

CreateUser creates record of a new user.

func DeleteEmailAddress

func DeleteEmailAddress(email *EmailAddress) (err error)

DeleteEmailAddress deletes an email address of given user.

func DeleteEmailAddresses

func DeleteEmailAddresses(emails []*EmailAddress) (err error)

DeleteEmailAddresses deletes multiple email addresses

func DeleteInactiveEmailAddresses

func DeleteInactiveEmailAddresses(ctx context.Context) error

DeleteInactiveEmailAddresses deletes inactive email addresses

func DeleteUserOpenID

func DeleteUserOpenID(openid *UserOpenID) (err error)

DeleteUserOpenID deletes an openid address of given user.

func DeleteUserRedirect

func DeleteUserRedirect(ctx context.Context, userName string) error

DeleteUserRedirect delete any redirect from the specified user name to anything else

func DeleteUserSetting added in v1.17.0

func DeleteUserSetting(userID int64, key string) error

DeleteUserSetting deletes a specific setting for a user

func ExistsWithAvatarAtStoragePath added in v1.17.4

func ExistsWithAvatarAtStoragePath(ctx context.Context, storagePath string) (bool, error)

ExistsWithAvatarAtStoragePath returns true if there is a user with this Avatar

func FixWrongUserType added in v1.17.4

func FixWrongUserType() (int64, error)

FixWrongUserType fix OrgUser who have wrong type

func FollowUser

func FollowUser(userID, followID int64) (err error)

FollowUser marks someone be another's follower.

func GenerateRandomAvatar

func GenerateRandomAvatar(ctx context.Context, u *User) error

GenerateRandomAvatar generates a random avatar for user.

func GetExternalLogin

func GetExternalLogin(externalLoginUser *ExternalLoginUser) (bool, error)

GetExternalLogin checks if a externalID in loginSourceID scope already exists

func GetOrderByName added in v1.17.4

func GetOrderByName() string

func GetSetting added in v1.17.4

func GetSetting(uid int64, key string) (string, error)

GetSetting returns the setting value via the key

func GetSettings

func GetSettings(uid int64, keys []string) (map[string]*Setting, error)

GetSettings returns specific settings from user

func GetUser

func GetUser(user *User) (bool, error)

GetUser checks if a user already exists

func GetUserAllSettings

func GetUserAllSettings(uid int64) (map[string]*Setting, error)

GetUserAllSettings returns all settings from user

func GetUserEmailsByNames

func GetUserEmailsByNames(ctx context.Context, names []string) []string

GetUserEmailsByNames returns a list of e-mails corresponds to names of users that have their email notifications set to enabled or onmention.

func GetUserIDByExternalUserID

func GetUserIDByExternalUserID(provider, userID string) (int64, error)

GetUserIDByExternalUserID get user id according to provider and userID

func GetUserIDsByNames

func GetUserIDsByNames(ctx context.Context, names []string, ignoreNonExistent bool) ([]int64, error)

GetUserIDsByNames returns a slice of ids corresponds to names.

func GetUserNameByID added in v1.17.0

func GetUserNameByID(ctx context.Context, id int64) (string, error)

GetUserNameByID returns username for the id

func GetUserNamesByIDs

func GetUserNamesByIDs(ids []int64) ([]string, error)

GetUserNamesByIDs returns usernames for all resolved users from a list of Ids.

func GetUserSalt

func GetUserSalt() (string, error)

GetUserSalt returns a random user salt token.

func GetUserSetting added in v1.17.0

func GetUserSetting(userID int64, key string, def ...string) (string, error)

GetUserSetting gets a specific setting for a user

func IncrUserRepoNum added in v1.17.4

func IncrUserRepoNum(ctx context.Context, userID int64) error

func IsEmailActive

func IsEmailActive(ctx context.Context, email string, excludeEmailID int64) (bool, error)

IsEmailActive check if email is activated with a different emailID

func IsEmailUsed

func IsEmailUsed(ctx context.Context, email string) (bool, error)

IsEmailUsed returns true if the email has been used.

func IsErrEmailAddressNotExist

func IsErrEmailAddressNotExist(err error) bool

IsErrEmailAddressNotExist checks if an error is an ErrEmailAddressNotExist

func IsErrEmailAlreadyUsed

func IsErrEmailAlreadyUsed(err error) bool

IsErrEmailAlreadyUsed checks if an error is a ErrEmailAlreadyUsed.

func IsErrEmailCharIsNotSupported added in v1.16.4

func IsErrEmailCharIsNotSupported(err error) bool

IsErrEmailCharIsNotSupported checks if an error is an ErrEmailCharIsNotSupported

func IsErrEmailInvalid

func IsErrEmailInvalid(err error) bool

IsErrEmailInvalid checks if an error is an ErrEmailInvalid

func IsErrExternalLoginUserAlreadyExist

func IsErrExternalLoginUserAlreadyExist(err error) bool

IsErrExternalLoginUserAlreadyExist checks if an error is a ExternalLoginUserAlreadyExist.

func IsErrExternalLoginUserNotExist

func IsErrExternalLoginUserNotExist(err error) bool

IsErrExternalLoginUserNotExist checks if an error is a ExternalLoginUserNotExist.

func IsErrOpenIDAlreadyUsed

func IsErrOpenIDAlreadyUsed(err error) bool

IsErrOpenIDAlreadyUsed checks if an error is a ErrOpenIDAlreadyUsed.

func IsErrPrimaryEmailCannotDelete

func IsErrPrimaryEmailCannotDelete(err error) bool

IsErrPrimaryEmailCannotDelete checks if an error is an ErrPrimaryEmailCannotDelete

func IsErrUserAlreadyExist

func IsErrUserAlreadyExist(err error) bool

IsErrUserAlreadyExist checks if an error is a ErrUserAlreadyExists.

func IsErrUserInactive

func IsErrUserInactive(err error) bool

IsErrUserInactive checks if an error is a ErrUserInactive

func IsErrUserIsNotLocal added in v1.20.0

func IsErrUserIsNotLocal(err error) bool

IsErrUserIsNotLocal

func IsErrUserNotExist

func IsErrUserNotExist(err error) bool

IsErrUserNotExist checks if an error is a ErrUserNotExist.

func IsErrUserProhibitLogin

func IsErrUserProhibitLogin(err error) bool

IsErrUserProhibitLogin checks if an error is a ErrUserProhibitLogin

func IsErrUserRedirectNotExist

func IsErrUserRedirectNotExist(err error) bool

IsErrUserRedirectNotExist check if an error is an ErrUserRedirectNotExist.

func IsErrUserSettingIsNotExist added in v1.17.4

func IsErrUserSettingIsNotExist(err error) bool

IsErrUserSettingIsNotExist return true if err is ErrSettingIsNotExist

func IsErrUsernameNotChanged added in v1.20.0

func IsErrUsernameNotChanged(err error) bool

IsErrUsernameNotChanged

func IsFollowing

func IsFollowing(userID, followID int64) bool

IsFollowing returns true if user is following followID.

func IsUsableUsername

func IsUsableUsername(name string) error

IsUsableUsername returns an error when a username is reserved

func IsUserExist

func IsUserExist(ctx context.Context, uid int64, name string) (bool, error)

IsUserExist checks if given user name exist, the user name should be noncased unique. If uid is presented, then check will rule out that one, it is used when update a user name in settings page.

func IsUserVisibleToViewer added in v1.17.0

func IsUserVisibleToViewer(ctx context.Context, u, viewer *User) bool

IsUserVisibleToViewer check if viewer is able to see user profile

func LinkExternalToUser

func LinkExternalToUser(user *User, externalLoginUser *ExternalLoginUser) error

LinkExternalToUser link the external user to the user

func LookupUserRedirect

func LookupUserRedirect(userName string) (int64, error)

LookupUserRedirect look up userID if a user has a redirect name

func MakeEmailPrimary

func MakeEmailPrimary(email *EmailAddress) error

MakeEmailPrimary sets primary email address of given user.

func NewUserRedirect

func NewUserRedirect(ctx context.Context, ID int64, oldUserName, newUserName string) error

NewUserRedirect create a new user redirect

func RemoveAccountLink(user *User, loginSourceID int64) (int64, error)

RemoveAccountLink will remove all external login sources for the given user

func RemoveAllAccountLinks(ctx context.Context, user *User) error

RemoveAllAccountLinks will remove all external login sources for the given user

func SetEmailNotifications

func SetEmailNotifications(u *User, set string) error

SetEmailNotifications sets the user's email notification preference

func SetMustChangePassword added in v1.18.4

func SetMustChangePassword(ctx context.Context, all, mustChangePassword bool, include, exclude []string) (int64, error)

func SetUserSetting added in v1.17.0

func SetUserSetting(userID int64, key, value string) error

SetUserSetting updates a users' setting for a specific key

func ToggleUserOpenIDVisibility

func ToggleUserOpenIDVisibility(id int64) (err error)

ToggleUserOpenIDVisibility toggles visibility of an openid address of given user.

func UnfollowUser

func UnfollowUser(userID, followID int64) (err error)

UnfollowUser unmarks someone as another's follower.

func UpdateExternalUserByExternalID

func UpdateExternalUserByExternalID(external *ExternalLoginUser) error

UpdateExternalUserByExternalID updates an external user's information

func UpdateUser

func UpdateUser(ctx context.Context, u *User, changePrimaryEmail bool, cols ...string) error

UpdateUser updates user's information.

func UpdateUserCols

func UpdateUserCols(ctx context.Context, u *User, cols ...string) error

UpdateUserCols update user according special columns

func UpdateUserDiffViewStyle

func UpdateUserDiffViewStyle(u *User, style string) error

UpdateUserDiffViewStyle updates the users diff view style

func UpdateUserSetting

func UpdateUserSetting(u *User) (err error)

UpdateUserSetting updates user's settings.

func UpdateUserTheme

func UpdateUserTheme(u *User, themeName string) error

UpdateUserTheme updates a users' theme irrespective of the site wide theme

func UserPath

func UserPath(userName string) string

UserPath returns the path absolute path of user repositories.

func ValidateEmail

func ValidateEmail(email string) error

ValidateEmail check if email is a allowed address

func ValidateUser added in v1.19.4

func ValidateUser(u *User, cols ...string) error

ValidateUser check if user is valid to insert / update into database

Types

type Badge added in v1.17.4

type Badge struct {
	ID          int64 `xorm:"pk autoincr"`
	Description string
	ImageURL    string
}

Badge represents a user badge

func GetUserBadges added in v1.17.4

func GetUserBadges(ctx context.Context, u *User) ([]*Badge, int64, error)

GetUserBadges returns the user's badges.

type CountUserFilter added in v1.17.0

type CountUserFilter struct {
	LastLoginSince *int64
}

CountUserFilter represent optional filters for CountUsers

type CreateUserOverwriteOptions

type CreateUserOverwriteOptions struct {
	KeepEmailPrivate             util.OptionalBool
	Visibility                   *structs.VisibleType
	AllowCreateOrganization      util.OptionalBool
	EmailNotificationsPreference *string
	MaxRepoCreation              *int
	Theme                        *string
	IsRestricted                 util.OptionalBool
	IsActive                     util.OptionalBool
}

CreateUserOverwriteOptions are an optional options who overwrite system defaults on user creation

type EmailAddress

type EmailAddress struct {
	ID          int64  `xorm:"pk autoincr"`
	UID         int64  `xorm:"INDEX NOT NULL"`
	Email       string `xorm:"UNIQUE NOT NULL"`
	LowerEmail  string `xorm:"UNIQUE NOT NULL"`
	IsActivated bool
	IsPrimary   bool `xorm:"DEFAULT(false) NOT NULL"`
}

EmailAddress is the list of all email addresses of a user. It also contains the primary email address which is saved in user table.

func GetEmailAddressByID

func GetEmailAddressByID(uid, id int64) (*EmailAddress, error)

GetEmailAddressByID gets a user's email address by ID

func GetEmailAddresses

func GetEmailAddresses(uid int64) ([]*EmailAddress, error)

GetEmailAddresses returns all email addresses belongs to given user.

func VerifyActiveEmailCode

func VerifyActiveEmailCode(code, email string) *EmailAddress

VerifyActiveEmailCode verifies active email code when active account

func (*EmailAddress) BeforeInsert

func (email *EmailAddress) BeforeInsert()

BeforeInsert will be invoked by XORM before inserting a record

type ErrEmailAddressNotExist

type ErrEmailAddressNotExist struct {
	Email string
}

ErrEmailAddressNotExist email address not exist

func (ErrEmailAddressNotExist) Error

func (err ErrEmailAddressNotExist) Error() string

func (ErrEmailAddressNotExist) Unwrap added in v1.17.4

func (err ErrEmailAddressNotExist) Unwrap() error

type ErrEmailAlreadyUsed

type ErrEmailAlreadyUsed struct {
	Email string
}

ErrEmailAlreadyUsed represents a "EmailAlreadyUsed" kind of error.

func (ErrEmailAlreadyUsed) Error

func (err ErrEmailAlreadyUsed) Error() string

func (ErrEmailAlreadyUsed) Unwrap added in v1.17.4

func (err ErrEmailAlreadyUsed) Unwrap() error

type ErrEmailCharIsNotSupported added in v1.16.4

type ErrEmailCharIsNotSupported struct {
	Email string
}

ErrEmailCharIsNotSupported e-mail address contains unsupported character

func (ErrEmailCharIsNotSupported) Error added in v1.16.4

func (err ErrEmailCharIsNotSupported) Error() string

func (ErrEmailCharIsNotSupported) Unwrap added in v1.17.4

func (err ErrEmailCharIsNotSupported) Unwrap() error

type ErrEmailInvalid

type ErrEmailInvalid struct {
	Email string
}

ErrEmailInvalid represents an error where the email address does not comply with RFC 5322 or has a leading '-' character

func (ErrEmailInvalid) Error

func (err ErrEmailInvalid) Error() string

func (ErrEmailInvalid) Unwrap added in v1.17.4

func (err ErrEmailInvalid) Unwrap() error

type ErrExternalLoginUserAlreadyExist

type ErrExternalLoginUserAlreadyExist struct {
	ExternalID    string
	UserID        int64
	LoginSourceID int64
}

ErrExternalLoginUserAlreadyExist represents a "ExternalLoginUserAlreadyExist" kind of error.

func (ErrExternalLoginUserAlreadyExist) Error

func (ErrExternalLoginUserAlreadyExist) Unwrap added in v1.17.4

type ErrExternalLoginUserNotExist

type ErrExternalLoginUserNotExist struct {
	UserID        int64
	LoginSourceID int64
}

ErrExternalLoginUserNotExist represents a "ExternalLoginUserNotExist" kind of error.

func (ErrExternalLoginUserNotExist) Error

func (ErrExternalLoginUserNotExist) Unwrap added in v1.17.4

func (err ErrExternalLoginUserNotExist) Unwrap() error

type ErrOpenIDAlreadyUsed

type ErrOpenIDAlreadyUsed struct {
	OpenID string
}

ErrOpenIDAlreadyUsed represents a "OpenIDAlreadyUsed" kind of error.

func (ErrOpenIDAlreadyUsed) Error

func (err ErrOpenIDAlreadyUsed) Error() string

func (ErrOpenIDAlreadyUsed) Unwrap added in v1.17.4

func (err ErrOpenIDAlreadyUsed) Unwrap() error

type ErrPrimaryEmailCannotDelete

type ErrPrimaryEmailCannotDelete struct {
	Email string
}

ErrPrimaryEmailCannotDelete primary email address cannot be deleted

func (ErrPrimaryEmailCannotDelete) Error

func (err ErrPrimaryEmailCannotDelete) Error() string

func (ErrPrimaryEmailCannotDelete) Unwrap added in v1.17.4

func (err ErrPrimaryEmailCannotDelete) Unwrap() error

type ErrUserAlreadyExist

type ErrUserAlreadyExist struct {
	Name string
}

ErrUserAlreadyExist represents a "user already exists" error.

func (ErrUserAlreadyExist) Error

func (err ErrUserAlreadyExist) Error() string

func (ErrUserAlreadyExist) Unwrap added in v1.17.4

func (err ErrUserAlreadyExist) Unwrap() error

Unwrap unwraps this error as a ErrExist error

type ErrUserInactive

type ErrUserInactive struct {
	UID  int64
	Name string
}

ErrUserInactive represents a "ErrUserInactive" kind of error.

func (ErrUserInactive) Error

func (err ErrUserInactive) Error() string

func (ErrUserInactive) Unwrap added in v1.17.4

func (err ErrUserInactive) Unwrap() error

Unwrap unwraps this error as a ErrPermission error

type ErrUserIsNotLocal added in v1.20.0

type ErrUserIsNotLocal struct {
	UID  int64
	Name string
}

ErrUserIsNotLocal represents a "ErrUserIsNotLocal" kind of error.

func (ErrUserIsNotLocal) Error added in v1.20.0

func (err ErrUserIsNotLocal) Error() string

type ErrUserNotExist

type ErrUserNotExist struct {
	UID   int64
	Name  string
	KeyID int64
}

ErrUserNotExist represents a "UserNotExist" kind of error.

func (ErrUserNotExist) Error

func (err ErrUserNotExist) Error() string

func (ErrUserNotExist) Unwrap added in v1.17.4

func (err ErrUserNotExist) Unwrap() error

Unwrap unwraps this error as a ErrNotExist error

type ErrUserProhibitLogin

type ErrUserProhibitLogin struct {
	UID  int64
	Name string
}

ErrUserProhibitLogin represents a "ErrUserProhibitLogin" kind of error.

func (ErrUserProhibitLogin) Error

func (err ErrUserProhibitLogin) Error() string

func (ErrUserProhibitLogin) Unwrap added in v1.17.4

func (err ErrUserProhibitLogin) Unwrap() error

Unwrap unwraps this error as a ErrPermission error

type ErrUserRedirectNotExist

type ErrUserRedirectNotExist struct {
	Name string
}

ErrUserRedirectNotExist represents a "UserRedirectNotExist" kind of error.

func (ErrUserRedirectNotExist) Error

func (err ErrUserRedirectNotExist) Error() string

func (ErrUserRedirectNotExist) Unwrap added in v1.17.4

func (err ErrUserRedirectNotExist) Unwrap() error

type ErrUserSettingIsNotExist added in v1.17.4

type ErrUserSettingIsNotExist struct {
	Key string
}

ErrUserSettingIsNotExist represents an error that a setting is not exist with special key

func (ErrUserSettingIsNotExist) Error added in v1.17.4

func (err ErrUserSettingIsNotExist) Error() string

Error implements error

func (ErrUserSettingIsNotExist) Unwrap added in v1.20.0

func (err ErrUserSettingIsNotExist) Unwrap() error

type ErrUsernameNotChanged added in v1.20.0

type ErrUsernameNotChanged struct {
	UID  int64
	Name string
}

func (ErrUsernameNotChanged) Error added in v1.20.0

func (err ErrUsernameNotChanged) Error() string

type ExternalLoginUser

type ExternalLoginUser struct {
	ExternalID        string         `xorm:"pk NOT NULL"`
	UserID            int64          `xorm:"INDEX NOT NULL"`
	LoginSourceID     int64          `xorm:"pk NOT NULL"`
	RawData           map[string]any `xorm:"TEXT JSON"`
	Provider          string         `xorm:"index VARCHAR(25)"`
	Email             string
	Name              string
	FirstName         string
	LastName          string
	NickName          string
	Description       string
	AvatarURL         string `xorm:"TEXT"`
	Location          string
	AccessToken       string `xorm:"TEXT"`
	AccessTokenSecret string `xorm:"TEXT"`
	RefreshToken      string `xorm:"TEXT"`
	ExpiresAt         time.Time
}

ExternalLoginUser makes the connecting between some existing user and additional external login sources

func FindExternalUsersByProvider

func FindExternalUsersByProvider(opts FindExternalUserOptions) ([]ExternalLoginUser, error)

FindExternalUsersByProvider represents external users via provider

func ListAccountLinks(user *User) ([]*ExternalLoginUser, error)

ListAccountLinks returns a map with the ExternalLoginUser and its LoginSource

type ExternalUserMigrated added in v1.17.0

type ExternalUserMigrated interface {
	GetExternalName() string
	GetExternalID() int64
}

type ExternalUserRemappable added in v1.17.0

type ExternalUserRemappable interface {
	GetUserID() int64
	RemapExternalUser(externalName string, externalID, userID int64) error
	ExternalUserMigrated
}

type FindExternalUserOptions

type FindExternalUserOptions struct {
	Provider string
	Limit    int
	Start    int
}

FindExternalUserOptions represents an options to find external users

type Follow

type Follow struct {
	ID          int64              `xorm:"pk autoincr"`
	UserID      int64              `xorm:"UNIQUE(follow)"`
	FollowID    int64              `xorm:"UNIQUE(follow)"`
	CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
}

Follow represents relations of user and their followers.

type Redirect

type Redirect struct {
	ID             int64  `xorm:"pk autoincr"`
	LowerName      string `xorm:"UNIQUE(s) INDEX NOT NULL"`
	RedirectUserID int64  // userID to redirect to
}

Redirect represents that a user name should be redirected to another

func (Redirect) TableName

func (Redirect) TableName() string

TableName provides the real table name

type SearchEmailOptions

type SearchEmailOptions struct {
	db.ListOptions
	Keyword     string
	SortType    SearchEmailOrderBy
	IsPrimary   util.OptionalBool
	IsActivated util.OptionalBool
}

SearchEmailOptions are options to search e-mail addresses for the admin panel

type SearchEmailOrderBy

type SearchEmailOrderBy string

SearchEmailOrderBy is used to sort the results from SearchEmails()

const (
	SearchEmailOrderByEmail        SearchEmailOrderBy = "email_address.lower_email ASC, email_address.is_primary DESC, email_address.id ASC"
	SearchEmailOrderByEmailReverse SearchEmailOrderBy = "email_address.lower_email DESC, email_address.is_primary ASC, email_address.id DESC"
	SearchEmailOrderByName         SearchEmailOrderBy = "`user`.lower_name ASC, email_address.is_primary DESC, email_address.id ASC"
	SearchEmailOrderByNameReverse  SearchEmailOrderBy = "`user`.lower_name DESC, email_address.is_primary ASC, email_address.id DESC"
)

Strings for sorting result

func (SearchEmailOrderBy) String

func (s SearchEmailOrderBy) String() string

type SearchEmailResult

type SearchEmailResult struct {
	UID         int64
	Email       string
	IsActivated bool
	IsPrimary   bool
	// From User
	Name     string
	FullName string
}

SearchEmailResult is an e-mail address found in the user or email_address table

func SearchEmails

func SearchEmails(opts *SearchEmailOptions) ([]*SearchEmailResult, int64, error)

SearchEmails takes options i.e. keyword and part of email name to search, it returns results in given range and number of total results.

type SearchOrganizationsOptions

type SearchOrganizationsOptions struct {
	db.ListOptions
	All bool
}

SearchOrganizationsOptions options to filter organizations

type SearchUserOptions

type SearchUserOptions struct {
	db.ListOptions

	Keyword       string
	Type          UserType
	UID           int64
	LoginName     string // this option should be used only for admin user
	SourceID      int64  // this option should be used only for admin user
	OrderBy       db.SearchOrderBy
	Visible       []structs.VisibleType
	Actor         *User // The user doing the search
	SearchByEmail bool  // Search by email as well as username/full name

	IsActive           util.OptionalBool
	IsAdmin            util.OptionalBool
	IsRestricted       util.OptionalBool
	IsTwoFactorEnabled util.OptionalBool
	IsProhibitLogin    util.OptionalBool

	ExtraParamStrings map[string]string
}

SearchUserOptions contains the options for searching

type Setting

type Setting struct {
	ID           int64  `xorm:"pk autoincr"`
	UserID       int64  `xorm:"index unique(key_userid)"`              // to load all of someone's settings
	SettingKey   string `xorm:"varchar(255) index unique(key_userid)"` // ensure key is always lowercase
	SettingValue string `xorm:"text"`
}

Setting is a key value store of user settings

func GetSettingNoCache added in v1.17.4

func GetSettingNoCache(uid int64, key string) (*Setting, error)

GetSettingNoCache returns specific setting without using the cache

func (*Setting) TableName

func (s *Setting) TableName() string

TableName sets the table name for the settings struct

type User

type User struct {
	ID        int64  `xorm:"pk autoincr"`
	LowerName string `xorm:"UNIQUE NOT NULL"`
	Name      string `xorm:"UNIQUE NOT NULL"`
	FullName  string
	// Email is the primary email address (to be used for communication)
	Email                        string `xorm:"NOT NULL"`
	KeepEmailPrivate             bool
	EmailNotificationsPreference string `xorm:"VARCHAR(20) NOT NULL DEFAULT 'enabled'"`
	Passwd                       string `xorm:"NOT NULL"`
	PasswdHashAlgo               string `xorm:"NOT NULL DEFAULT 'argon2'"`

	// MustChangePassword is an attribute that determines if a user
	// is to change their password after registration.
	MustChangePassword bool `xorm:"NOT NULL DEFAULT false"`

	LoginType   auth.Type
	LoginSource int64 `xorm:"NOT NULL DEFAULT 0"`
	LoginName   string
	Type        UserType
	Location    string
	Website     string
	Rands       string `xorm:"VARCHAR(32)"`
	Salt        string `xorm:"VARCHAR(32)"`
	Language    string `xorm:"VARCHAR(5)"`
	Description string

	CreatedUnix   timeutil.TimeStamp `xorm:"INDEX created"`
	UpdatedUnix   timeutil.TimeStamp `xorm:"INDEX updated"`
	LastLoginUnix timeutil.TimeStamp `xorm:"INDEX"`

	// Remember visibility choice for convenience, true for private
	LastRepoVisibility bool
	// Maximum repository creation limit, -1 means use global default
	MaxRepoCreation int `xorm:"NOT NULL DEFAULT -1"`

	// IsActive true: primary email is activated, user can access Web UI and Git SSH.
	// false: an inactive user can only log in Web UI for account operations (ex: activate the account by email), no other access.
	IsActive bool `xorm:"INDEX"`
	// the user is a Gitea admin, who can access all repositories and the admin pages.
	IsAdmin bool
	// true: the user is only allowed to see organizations/repositories that they has explicit rights to.
	// (ex: in private Gitea instances user won't be allowed to see even organizations/repositories that are set as public)
	IsRestricted bool `xorm:"NOT NULL DEFAULT false"`

	AllowGitHook            bool
	AllowImportLocal        bool // Allow migrate repository by local path
	AllowCreateOrganization bool `xorm:"DEFAULT true"`

	// true: the user is not allowed to log in Web UI. Git/SSH access could still be allowed (please refer to Git/SSH access related code/documents)
	ProhibitLogin bool `xorm:"NOT NULL DEFAULT false"`

	// Avatar
	Avatar          string `xorm:"VARCHAR(2048) NOT NULL"`
	AvatarEmail     string `xorm:"NOT NULL"`
	UseCustomAvatar bool

	// Counters
	NumFollowers int
	NumFollowing int `xorm:"NOT NULL DEFAULT 0"`
	NumStars     int
	NumRepos     int

	// For organization
	NumTeams                  int
	NumMembers                int
	Visibility                structs.VisibleType `xorm:"NOT NULL DEFAULT 0"`
	RepoAdminChangeTeamAccess bool                `xorm:"NOT NULL DEFAULT false"`

	// Preferences
	DiffViewStyle       string `xorm:"NOT NULL DEFAULT ''"`
	Theme               string `xorm:"NOT NULL DEFAULT ''"`
	KeepActivityPrivate bool   `xorm:"NOT NULL DEFAULT false"`
}

User represents the object of individual and member of organization.

func GetAdminUser

func GetAdminUser() (*User, error)

GetAdminUser returns the first administrator

func GetAllUsers

func GetAllUsers() ([]*User, error)

GetAllUsers returns a slice of all individual users found in DB.

func GetInactiveUsers

func GetInactiveUsers(ctx context.Context, olderThan time.Duration) ([]*User, error)

GetInactiveUsers gets all inactive users

func GetMaileableUsersByIDs

func GetMaileableUsersByIDs(ctx context.Context, ids []int64, isMention bool) ([]*User, error)

GetMaileableUsersByIDs gets users from ids, but only if they can receive mails

func GetPossibleUserByID added in v1.19.0

func GetPossibleUserByID(ctx context.Context, id int64) (*User, error)

GetPossibleUserByID returns the user if id > 0 or return system usrs if id < 0

func GetPossibleUserByIDs added in v1.20.0

func GetPossibleUserByIDs(ctx context.Context, ids []int64) ([]*User, error)

GetPossibleUserByIDs returns the users if id > 0 or return system users if id < 0

func GetUserByEmail

func GetUserByEmail(ctx context.Context, email string) (*User, error)

GetUserByEmail returns the user object by given e-mail if exists.

func GetUserByID

func GetUserByID(ctx context.Context, id int64) (*User, error)

GetUserByID returns the user object by given ID if exists.

func GetUserByIDs added in v1.20.0

func GetUserByIDs(ctx context.Context, ids []int64) ([]*User, error)

GetUserByIDs returns the user objects by given IDs if exists.

func GetUserByName

func GetUserByName(ctx context.Context, name string) (*User, error)

GetUserByNameCtx returns user by given name.

func GetUserByOpenID

func GetUserByOpenID(uri string) (*User, error)

GetUserByOpenID returns the user object by given OpenID if exists.

func GetUserFollowers

func GetUserFollowers(ctx context.Context, u, viewer *User, listOptions db.ListOptions) ([]*User, int64, error)

GetUserFollowers returns range of user's followers.

func GetUserFollowing

func GetUserFollowing(ctx context.Context, u, viewer *User, listOptions db.ListOptions) ([]*User, int64, error)

GetUserFollowing returns range of user's following.

func GetUsersBySource

func GetUsersBySource(s *auth.Source) ([]*User, error)

GetUsersBySource returns a list of Users for a login source

func GetVerifyUser

func GetVerifyUser(code string) (user *User)

GetVerifyUser get user by verify code

func NewActionsUser added in v1.19.0

func NewActionsUser() *User

NewActionsUser creates and returns a fake user for running the actions.

func NewGhostUser

func NewGhostUser() *User

NewGhostUser creates and returns a fake user for someone has deleted their account.

func NewReplaceUser

func NewReplaceUser(name string) *User

NewReplaceUser creates and returns a fake user for external user

func SearchUsers

func SearchUsers(opts *SearchUserOptions) (users []*User, _ int64, _ error)

SearchUsers takes options i.e. keyword and part of user name to search, it returns results in given range and number of total results.

func ValidateCommitWithEmail

func ValidateCommitWithEmail(ctx context.Context, c *git.Commit) *User

ValidateCommitWithEmail check if author's e-mail of commit is corresponding to a user.

func VerifyUserActiveCode

func VerifyUserActiveCode(code string) (user *User)

VerifyUserActiveCode verifies active code when active account

func (*User) AfterLoad

func (u *User) AfterLoad()

AfterLoad is invoked from XORM after filling all the fields of this object.

func (u *User) AvatarLink(ctx context.Context) string

AvatarLink returns the full avatar link with http host

func (*User) AvatarLinkWithSize

func (u *User) AvatarLinkWithSize(ctx context.Context, size int) string

AvatarLinkWithSize returns a link to the user's avatar with size. size <= 0 means default size

func (*User) BeforeUpdate

func (u *User) BeforeUpdate()

BeforeUpdate is invoked from XORM before updating this object.

func (*User) CanCreateOrganization

func (u *User) CanCreateOrganization() bool

CanCreateOrganization returns true if user can create organisation.

func (*User) CanCreateRepo

func (u *User) CanCreateRepo() bool

CanCreateRepo returns if user login can create a repository NOTE: functions calling this assume a failure due to repository count limit; if new checks are added, those functions should be revised

func (*User) CanEditGitHook

func (u *User) CanEditGitHook() bool

CanEditGitHook returns true if user can edit Git hooks.

func (*User) CanForkRepo added in v1.19.0

func (u *User) CanForkRepo() bool

CanForkRepo returns if user login can fork a repository It checks especially that the user can create repos, and potentially more

func (*User) CanImportLocal

func (u *User) CanImportLocal() bool

CanImportLocal returns true if user can migrate repository by local path.

func (*User) CustomAvatarRelativePath

func (u *User) CustomAvatarRelativePath() string

CustomAvatarRelativePath returns user custom avatar relative path.

func (u *User) DashboardLink() string

DashboardLink returns the user dashboard page link.

func (*User) DisplayName

func (u *User) DisplayName() string

DisplayName returns full name if it's not empty, returns username otherwise.

func (*User) EmailNotifications

func (u *User) EmailNotifications() string

EmailNotifications returns the User's email notification preference

func (*User) GenerateEmailActivateCode

func (u *User) GenerateEmailActivateCode(email string) string

GenerateEmailActivateCode generates an activate code based on user information and given e-mail.

func (*User) GetDisplayName

func (u *User) GetDisplayName() string

GetDisplayName returns full name if it's not empty and DEFAULT_SHOW_FULL_NAME is set, returns username otherwise.

func (*User) GetEmail

func (u *User) GetEmail() string

GetEmail returns an noreply email, if the user has set to keep his email address private, otherwise the primary email address.

func (*User) GetPlaceholderEmail added in v1.20.3

func (u *User) GetPlaceholderEmail() string

GetPlaceholderEmail returns an noreply email

func (*User) GitName

func (u *User) GitName() string

GitName returns a git safe name

func (*User) HTMLURL

func (u *User) HTMLURL() string

HTMLURL returns the user or organization's full link.

func (u *User) HomeLink() string

HomeLink returns the user or organization home page link.

func (*User) IsActions added in v1.19.0

func (u *User) IsActions() bool

func (*User) IsBot added in v1.20.0

func (u *User) IsBot() bool

IsBot returns whether or not the user is of type bot

func (*User) IsGhost

func (u *User) IsGhost() bool

IsGhost check if user is fake user for a deleted account

func (*User) IsIndividual added in v1.19.0

func (u *User) IsIndividual() bool

IsIndividual returns true if user is actually a individual user.

func (*User) IsLocal

func (u *User) IsLocal() bool

IsLocal returns true if user login type is LoginPlain.

func (*User) IsMailable

func (u *User) IsMailable() bool

IsMailable checks if a user is eligible to receive emails.

func (*User) IsOAuth2

func (u *User) IsOAuth2() bool

IsOAuth2 returns true if user login type is LoginOAuth2.

func (*User) IsOrganization

func (u *User) IsOrganization() bool

IsOrganization returns true if user is actually a organization.

func (*User) IsPasswordSet

func (u *User) IsPasswordSet() bool

IsPasswordSet checks if the password is set or left empty

func (*User) IsUploadAvatarChanged

func (u *User) IsUploadAvatarChanged(data []byte) bool

IsUploadAvatarChanged returns true if the current user's avatar would be changed with the provided data

func (*User) LogString added in v1.20.0

func (u *User) LogString() string

func (*User) MaxCreationLimit

func (u *User) MaxCreationLimit() int

MaxCreationLimit returns the number of repositories a user is allowed to create

func (*User) NewGitSig

func (u *User) NewGitSig() *git.Signature

NewGitSig generates and returns the signature of given user.

func (u *User) OrganisationLink() string

OrganisationLink returns the organization sub page link.

func (*User) SetLastLogin

func (u *User) SetLastLogin()

SetLastLogin set time to last login

func (*User) SetPassword

func (u *User) SetPassword(passwd string) (err error)

SetPassword hashes a password using the algorithm defined in the config value of PASSWORD_HASH_ALGO change passwd, salt and passwd_hash_algo fields

func (*User) ShortName

func (u *User) ShortName(length int) string

ShortName ellipses username to length

func (*User) ValidatePassword

func (u *User) ValidatePassword(passwd string) bool

ValidatePassword checks if the given password matches the one belonging to the user.

type UserBadge added in v1.17.4

type UserBadge struct {
	ID      int64 `xorm:"pk autoincr"`
	BadgeID int64
	UserID  int64 `xorm:"INDEX"`
}

UserBadge represents a user badge

type UserCommit

type UserCommit struct {
	User *User
	*git.Commit
}

UserCommit represents a commit with validation of user.

func ValidateCommitsWithEmails

func ValidateCommitsWithEmails(ctx context.Context, oldCommits []*git.Commit) []*UserCommit

ValidateCommitsWithEmails checks if authors' e-mails of commits are corresponding to users.

type UserList

type UserList []*User //revive:disable-line:exported

UserList is a list of user. This type provide valuable methods to retrieve information for a group of users efficiently.

func GetUsersByIDs

func GetUsersByIDs(ids []int64) (UserList, error)

GetUsersByIDs returns all resolved users from a list of Ids.

func (UserList) GetTwoFaStatus

func (users UserList) GetTwoFaStatus() map[int64]bool

GetTwoFaStatus return state of 2FA enrollement

func (UserList) GetUserIDs

func (users UserList) GetUserIDs() []int64

GetUserIDs returns a slice of user's id

type UserOpenID

type UserOpenID struct {
	ID   int64  `xorm:"pk autoincr"`
	UID  int64  `xorm:"INDEX NOT NULL"`
	URI  string `xorm:"UNIQUE NOT NULL"`
	Show bool   `xorm:"DEFAULT false"`
}

UserOpenID is the list of all OpenID identities of a user. Since this is a middle table, name it OpenID is not suitable, so we ignore the lint here

func GetUserOpenIDs

func GetUserOpenIDs(uid int64) ([]*UserOpenID, error)

GetUserOpenIDs returns all openid addresses that belongs to given user.

type UserType

type UserType int //revive:disable-line:exported

UserType defines the user type

const (
	// UserTypeIndividual defines an individual user
	UserTypeIndividual UserType = iota // Historic reason to make it starts at 0.

	// UserTypeOrganization defines an organization
	UserTypeOrganization

	// UserTypeReserved reserves a (non-existing) user, i.e. to prevent a spam user from re-registering after being deleted, or to reserve the name until the user is actually created later on
	UserTypeUserReserved

	// UserTypeOrganizationReserved reserves a (non-existing) organization, to be used in combination with UserTypeUserReserved
	UserTypeOrganizationReserved

	// UserTypeBot defines a bot user
	UserTypeBot

	// UserTypeRemoteUser defines a remote user for federated users
	UserTypeRemoteUser
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL