parent
3634d1ee32
commit
ddbd2ce152
@ -1,58 +0,0 @@ |
|||||||
// 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 ( |
|
||||||
"encoding/hex" |
|
||||||
"fmt" |
|
||||||
|
|
||||||
"github.com/gogits/gogs/models" |
|
||||||
"github.com/gogits/gogs/modules/base" |
|
||||||
"github.com/gogits/gogs/modules/mailer" |
|
||||||
) |
|
||||||
|
|
||||||
// create a time limit code for user active
|
|
||||||
func CreateUserActiveCode(user *models.User, startInf interface{}) string { |
|
||||||
hours := base.Service.ActiveCodeLives / 60 |
|
||||||
data := base.ToStr(user.Id) + user.Email + user.LowerName + user.Passwd + user.Rands |
|
||||||
code := base.CreateTimeLimitCode(data, hours, startInf) |
|
||||||
|
|
||||||
// add tail hex username
|
|
||||||
code += hex.EncodeToString([]byte(user.LowerName)) |
|
||||||
return code |
|
||||||
} |
|
||||||
|
|
||||||
// Send user register mail with active code
|
|
||||||
func SendRegisterMail(user *models.User) { |
|
||||||
code := CreateUserActiveCode(user, nil) |
|
||||||
subject := "Register success, Welcome" |
|
||||||
|
|
||||||
data := mailer.GetMailTmplData(user) |
|
||||||
data["Code"] = code |
|
||||||
body := base.RenderTemplate("mail/auth/register_success.html", data) |
|
||||||
|
|
||||||
msg := mailer.NewMailMessage([]string{user.Email}, subject, body) |
|
||||||
msg.Info = fmt.Sprintf("UID: %d, send register mail", user.Id) |
|
||||||
|
|
||||||
// async send mail
|
|
||||||
mailer.SendAsync(msg) |
|
||||||
} |
|
||||||
|
|
||||||
// Send email verify active email.
|
|
||||||
func SendActiveMail(user *models.User) { |
|
||||||
code := CreateUserActiveCode(user, nil) |
|
||||||
|
|
||||||
subject := "Verify your email address" |
|
||||||
|
|
||||||
data := mailer.GetMailTmplData(user) |
|
||||||
data["Code"] = code |
|
||||||
body := base.RenderTemplate("mail/auth/active_email.html", data) |
|
||||||
|
|
||||||
msg := mailer.NewMailMessage([]string{user.Email}, subject, body) |
|
||||||
msg.Info = fmt.Sprintf("UID: %d, send email verify mail", user.Id) |
|
||||||
|
|
||||||
// async send mail
|
|
||||||
mailer.SendAsync(msg) |
|
||||||
} |
|
@ -0,0 +1,25 @@ |
|||||||
|
{{template "mail/base.html" .}} |
||||||
|
{{define "title"}} |
||||||
|
{{if eq .Lang "zh-CN"}} |
||||||
|
{{.User.NickName}},激活你的账户 |
||||||
|
{{end}} |
||||||
|
{{if eq .Lang "en-US"}} |
||||||
|
{{.User.NickName}}, please active your account |
||||||
|
{{end}} |
||||||
|
{{end}} |
||||||
|
{{define "body"}} |
||||||
|
{{if eq .Lang "zh-CN"}} |
||||||
|
<p style="margin:0;padding:0 0 9px 0;">点击链接验证email,{{.ActiveCodeLives}} 分钟内有效</p> |
||||||
|
<p style="margin:0;padding:0 0 9px 0;"> |
||||||
|
<a href="{{.AppUrl}}active/{{.Code}}">{{.AppUrl}}active/{{.Code}}</a> |
||||||
|
</p> |
||||||
|
<p style="margin:0;padding:0 0 9px 0;">如果链接点击无反应,请复制到浏览器打开。</p> |
||||||
|
{{end}} |
||||||
|
{{if eq .Lang "en-US"}} |
||||||
|
<p style="margin:0;padding:0 0 9px 0;">Please click following link to verify your e-mail in {{.ActiveCodeLives}} hours</p> |
||||||
|
<p style="margin:0;padding:0 0 9px 0;"> |
||||||
|
<a href="{{.AppUrl}}active/{{.Code}}">{{.AppUrl}}active/{{.Code}}</a> |
||||||
|
</p> |
||||||
|
<p style="margin:0;padding:0 0 9px 0;">Copy and paste it to your browser if it's not working.</p> |
||||||
|
{{end}} |
||||||
|
{{end}} |
@ -0,0 +1,33 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html> |
||||||
|
<head> |
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
||||||
|
<title>{{.User.Name}}, welcome to {{.AppName}}</title> |
||||||
|
</head> |
||||||
|
<body style="background:#eee;"> |
||||||
|
<div style="color:#555; font:12px/1.5 Tahoma,Arial,sans-serif;; text-shadow:1px 1px #fff; padding:0; margin:0;"> |
||||||
|
<div style="width:600px;margin:0 auto; padding:40px 0 20px;"> |
||||||
|
<div style="border:1px solid #d9d9d9;border-radius:3px; background:#fff; box-shadow: 0px 2px 5px rgba(0, 0, 0,.05); -webkit-box-shadow: 0px 2px 5px rgba(0, 0, 0,.05);"> |
||||||
|
<div style="padding: 20px 15px;"> |
||||||
|
<h1 style="font-size:20px; padding:10px 0 20px; margin:0; border-bottom:1px solid #ddd;"><a style="color:#333;text-decoration:none;" target="_blank" href="{{.AppUrl}}">{{.AppName}}</a></h1> |
||||||
|
<div style="padding:40px 15px;"> |
||||||
|
<div style="font-size:16px; padding-bottom:30px; font-weight:bold;"> |
||||||
|
{{.User.Name}}, welcome to {{.AppName}} |
||||||
|
</div> |
||||||
|
<div style="font-size:14px; padding:0 15px;"> |
||||||
|
<p style="margin:0;padding:0 0 9px 0;">Please click following link to verify your e-mail in {{.ActiveCodeLives}} hours</p> |
||||||
|
<p style="margin:0;padding:0 0 9px 0;"> |
||||||
|
<a href="{{.AppUrl}}activate/code={{.Code}}">{{.AppUrl}}active/{{.Code}}</a> |
||||||
|
</p> |
||||||
|
<p style="margin:0;padding:0 0 9px 0;">Copy and paste it to your browser if it's not working.</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div style="color:#aaa;padding:10px;text-align:center;"> |
||||||
|
© 2014 <a style="color:#888;text-decoration:none;" target="_blank" href="{{.AppUrl}}">{{AppName}}</a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,25 @@ |
|||||||
|
{{template "mail/base.html" .}} |
||||||
|
{{define "title"}} |
||||||
|
{{if eq .Lang "zh-CN"}} |
||||||
|
{{.User.NickName}},重置账户密码 |
||||||
|
{{end}} |
||||||
|
{{if eq .Lang "en-US"}} |
||||||
|
{{.User.NickName}}, reset your password |
||||||
|
{{end}} |
||||||
|
{{end}} |
||||||
|
{{define "body"}} |
||||||
|
{{if eq .Lang "zh-CN"}} |
||||||
|
<p style="margin:0;padding:0 0 9px 0;">点击链接重置密码,{{.ResetPwdCodeLives}} 分钟内有效</p> |
||||||
|
<p style="margin:0;padding:0 0 9px 0;"> |
||||||
|
<a href="{{.AppUrl}}reset/{{.Code}}">{{.AppUrl}}reset/{{.Code}}</a> |
||||||
|
</p> |
||||||
|
<p style="margin:0;padding:0 0 9px 0;">如果链接点击无反应,请复制到浏览器打开。</p> |
||||||
|
{{end}} |
||||||
|
{{if eq .Lang "en-US"}} |
||||||
|
<p style="margin:0;padding:0 0 9px 0;">Please click following link to reset your password in {{.ResetPwdCodeLives}} hours</p> |
||||||
|
<p style="margin:0;padding:0 0 9px 0;"> |
||||||
|
<a href="{{.AppUrl}}reset/{{.Code}}">{{.AppUrl}}reset/{{.Code}}</a> |
||||||
|
</p> |
||||||
|
<p style="margin:0;padding:0 0 9px 0;">Copy and paste it to your browser if it's not working.</p> |
||||||
|
{{end}} |
||||||
|
{{end}} |
@ -0,0 +1,29 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html> |
||||||
|
<head> |
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
||||||
|
<title>{{.Title}} - {{AppName}}</title> |
||||||
|
</head> |
||||||
|
<body style="background:#eee;"> |
||||||
|
<div style="color:#555; font:12px/1.5 Tahoma,Arial,sans-serif;; text-shadow:1px 1px #fff; padding:0; margin:0;"> |
||||||
|
<div style="width:600px;margin:0 auto; padding:40px 0 20px;"> |
||||||
|
<div style="border:1px solid #d9d9d9;border-radius:3px; background:#fff; box-shadow: 0px 2px 5px rgba(0, 0, 0,.05); -webkit-box-shadow: 0px 2px 5px rgba(0, 0, 0,.05);"> |
||||||
|
<div style="padding: 20px 15px;"> |
||||||
|
<h1 style="font-size:20px; padding:10px 0 20px; margin:0; border-bottom:1px solid #ddd;"><a style="color:#333;text-decoration:none;" target="_blank" href="{{.AppUrl}}">{{AppName}}</a></h1> |
||||||
|
<div style="padding:40px 15px;"> |
||||||
|
<div style="font-size:16px; padding-bottom:30px; font-weight:bold;"> |
||||||
|
{{.Title}} |
||||||
|
</div> |
||||||
|
<div style="font-size:14px; padding:0 15px;"> |
||||||
|
{{template "body" .}} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div style="color:#aaa;padding:10px;text-align:center;"> |
||||||
|
© 2014 <a style="color:#888;text-decoration:none;" target="_blank" href="{{.AppUrl}}">{{AppName}} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
Loading…
Reference in new issue