mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	Add send register confirm mail
This commit is contained in:
		| @@ -13,6 +13,7 @@ import ( | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"math" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 	"time" | ||||
| ) | ||||
| @@ -59,13 +60,14 @@ func CreateTimeLimitCode(data string, minutes int, startInf interface{}) string | ||||
|  | ||||
| 	// create sha1 encode string | ||||
| 	sh := sha1.New() | ||||
| 	sh.Write([]byte(data + SecretKey + startStr + endStr + fmt.Sprintf("%d", minutes))) | ||||
| 	sh.Write([]byte(data + SecretKey + startStr + endStr + ToStr(minutes))) | ||||
| 	encoded := hex.EncodeToString(sh.Sum(nil)) | ||||
|  | ||||
| 	code := fmt.Sprintf("%s%06d%s", startStr, minutes, encoded) | ||||
| 	return code | ||||
| } | ||||
|  | ||||
| // TODO: | ||||
| func RenderTemplate(TplNames string, Data map[interface{}]interface{}) string { | ||||
| 	// if beego.RunMode == "dev" { | ||||
| 	// 	beego.BuildTemplate(beego.ViewsPath) | ||||
| @@ -300,6 +302,57 @@ func DateFormat(t time.Time, format string) string { | ||||
| 	return t.Format(format) | ||||
| } | ||||
|  | ||||
| type argInt []int | ||||
|  | ||||
| func (a argInt) Get(i int, args ...int) (r int) { | ||||
| 	if i >= 0 && i < len(a) { | ||||
| 		r = a[i] | ||||
| 	} | ||||
| 	if len(args) > 0 { | ||||
| 		r = args[0] | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // convert any type to string | ||||
| func ToStr(value interface{}, args ...int) (s string) { | ||||
| 	switch v := value.(type) { | ||||
| 	case bool: | ||||
| 		s = strconv.FormatBool(v) | ||||
| 	case float32: | ||||
| 		s = strconv.FormatFloat(float64(v), 'f', argInt(args).Get(0, -1), argInt(args).Get(1, 32)) | ||||
| 	case float64: | ||||
| 		s = strconv.FormatFloat(v, 'f', argInt(args).Get(0, -1), argInt(args).Get(1, 64)) | ||||
| 	case int: | ||||
| 		s = strconv.FormatInt(int64(v), argInt(args).Get(0, 10)) | ||||
| 	case int8: | ||||
| 		s = strconv.FormatInt(int64(v), argInt(args).Get(0, 10)) | ||||
| 	case int16: | ||||
| 		s = strconv.FormatInt(int64(v), argInt(args).Get(0, 10)) | ||||
| 	case int32: | ||||
| 		s = strconv.FormatInt(int64(v), argInt(args).Get(0, 10)) | ||||
| 	case int64: | ||||
| 		s = strconv.FormatInt(v, argInt(args).Get(0, 10)) | ||||
| 	case uint: | ||||
| 		s = strconv.FormatUint(uint64(v), argInt(args).Get(0, 10)) | ||||
| 	case uint8: | ||||
| 		s = strconv.FormatUint(uint64(v), argInt(args).Get(0, 10)) | ||||
| 	case uint16: | ||||
| 		s = strconv.FormatUint(uint64(v), argInt(args).Get(0, 10)) | ||||
| 	case uint32: | ||||
| 		s = strconv.FormatUint(uint64(v), argInt(args).Get(0, 10)) | ||||
| 	case uint64: | ||||
| 		s = strconv.FormatUint(v, argInt(args).Get(0, 10)) | ||||
| 	case string: | ||||
| 		s = v | ||||
| 	case []byte: | ||||
| 		s = string(v) | ||||
| 	default: | ||||
| 		s = fmt.Sprintf("%v", v) | ||||
| 	} | ||||
| 	return s | ||||
| } | ||||
|  | ||||
| type Actioner interface { | ||||
| 	GetOpType() int | ||||
| 	GetActUserName() string | ||||
|   | ||||
		Reference in New Issue
	
	Block a user