66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
// Copyright 2022 The Gitea Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package user
 | 
						|
 | 
						|
import (
 | 
						|
	"strings"
 | 
						|
 | 
						|
	"code.gitea.io/gitea/modules/structs"
 | 
						|
)
 | 
						|
 | 
						|
// NewGhostUser creates and returns a fake user for someone has deleted their account.
 | 
						|
func NewGhostUser() *User {
 | 
						|
	return &User{
 | 
						|
		ID:        -1,
 | 
						|
		Name:      "Ghost",
 | 
						|
		LowerName: "ghost",
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// IsGhost check if user is fake user for a deleted account
 | 
						|
func (u *User) IsGhost() bool {
 | 
						|
	if u == nil {
 | 
						|
		return false
 | 
						|
	}
 | 
						|
	return u.ID == -1 && u.Name == "Ghost"
 | 
						|
}
 | 
						|
 | 
						|
// NewReplaceUser creates and returns a fake user for external user
 | 
						|
func NewReplaceUser(name string) *User {
 | 
						|
	return &User{
 | 
						|
		ID:        -1,
 | 
						|
		Name:      name,
 | 
						|
		LowerName: strings.ToLower(name),
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
const (
 | 
						|
	GhostUserID     = -1
 | 
						|
	ActionsUserID   = -2
 | 
						|
	ActionsUserName = "gitea-actions"
 | 
						|
	ActionsFullName = "Gitea Actions"
 | 
						|
	ActionsEmail    = "teabot@gitea.io"
 | 
						|
)
 | 
						|
 | 
						|
// NewActionsUser creates and returns a fake user for running the actions.
 | 
						|
func NewActionsUser() *User {
 | 
						|
	return &User{
 | 
						|
		ID:                      ActionsUserID,
 | 
						|
		Name:                    ActionsUserName,
 | 
						|
		LowerName:               ActionsUserName,
 | 
						|
		IsActive:                true,
 | 
						|
		FullName:                ActionsFullName,
 | 
						|
		Email:                   ActionsEmail,
 | 
						|
		KeepEmailPrivate:        true,
 | 
						|
		LoginName:               ActionsUserName,
 | 
						|
		Type:                    UserTypeIndividual,
 | 
						|
		AllowCreateOrganization: true,
 | 
						|
		Visibility:              structs.VisibleTypePublic,
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (u *User) IsActions() bool {
 | 
						|
	return u != nil && u.ID == ActionsUserID
 | 
						|
}
 |