mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Code convention
This commit is contained in:
		@@ -5,7 +5,7 @@ Gogs(Go Git Service) is a Self Hosted Git Service in the Go Programming Language
 | 
				
			|||||||
 | 
					
 | 
				
			||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Current version: 0.4.0 Alpha
 | 
					##### Current version: 0.4.2 Alpha
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### NOTICES
 | 
					### NOTICES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,7 @@ Gogs(Go Git Service) 是一个由 Go 语言编写的自助 Git 托管服务。
 | 
				
			|||||||
 | 
					
 | 
				
			||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### 当前版本:0.4.0 Alpha
 | 
					##### 当前版本:0.4.2 Alpha
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 开发目的
 | 
					## 开发目的
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -89,9 +89,11 @@ func runWeb(*cli.Context) {
 | 
				
			|||||||
	m.Get("/", ignSignIn, routers.Home)
 | 
						m.Get("/", ignSignIn, routers.Home)
 | 
				
			||||||
	m.Get("/install", bindIgnErr(auth.InstallForm{}), routers.Install)
 | 
						m.Get("/install", bindIgnErr(auth.InstallForm{}), routers.Install)
 | 
				
			||||||
	m.Post("/install", bindIgnErr(auth.InstallForm{}), routers.InstallPost)
 | 
						m.Post("/install", bindIgnErr(auth.InstallForm{}), routers.InstallPost)
 | 
				
			||||||
	m.Get("/issues", reqSignIn, user.Issues)
 | 
						m.Group("", func(r martini.Router) {
 | 
				
			||||||
	m.Get("/pulls", reqSignIn, user.Pulls)
 | 
							r.Get("/issues", user.Issues)
 | 
				
			||||||
	m.Get("/stars", reqSignIn, user.Stars)
 | 
							r.Get("/pulls", user.Pulls)
 | 
				
			||||||
 | 
							r.Get("/stars", user.Stars)
 | 
				
			||||||
 | 
						}, reqSignIn)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m.Group("/api", func(r martini.Router) {
 | 
						m.Group("/api", func(r martini.Router) {
 | 
				
			||||||
		m.Group("/v1", func(r martini.Router) {
 | 
							m.Group("/v1", func(r martini.Router) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							@@ -17,7 +17,7 @@ import (
 | 
				
			|||||||
	"github.com/gogits/gogs/modules/setting"
 | 
						"github.com/gogits/gogs/modules/setting"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const APP_VER = "0.4.1.0603 Alpha"
 | 
					const APP_VER = "0.4.2.0605 Alpha"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	runtime.GOMAXPROCS(runtime.NumCPU())
 | 
						runtime.GOMAXPROCS(runtime.NumCPU())
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -150,8 +150,8 @@ func DelLoginSource(source *LoginSource) error {
 | 
				
			|||||||
	return err
 | 
						return err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// login a user
 | 
					// UserSignIn validates user name and password.
 | 
				
			||||||
func LoginUser(uname, passwd string) (*User, error) {
 | 
					func UserSignIn(uname, passwd string) (*User, error) {
 | 
				
			||||||
	var u *User
 | 
						var u *User
 | 
				
			||||||
	if strings.Contains(uname, "@") {
 | 
						if strings.Contains(uname, "@") {
 | 
				
			||||||
		u = &User{Email: uname}
 | 
							u = &User{Email: uname}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -72,7 +72,7 @@ func (user *User) HomeLink() string {
 | 
				
			|||||||
	return "/user/" + user.Name
 | 
						return "/user/" + user.Name
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// AvatarLink returns the user gravatar link.
 | 
					// AvatarLink returns user gravatar link.
 | 
				
			||||||
func (user *User) AvatarLink() string {
 | 
					func (user *User) AvatarLink() string {
 | 
				
			||||||
	if setting.DisableGravatar {
 | 
						if setting.DisableGravatar {
 | 
				
			||||||
		return "/img/avatar_default.jpg"
 | 
							return "/img/avatar_default.jpg"
 | 
				
			||||||
@@ -268,17 +268,17 @@ func ChangeUserName(user *User, newUserName string) (err error) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// UpdateUser updates user's information.
 | 
					// UpdateUser updates user's information.
 | 
				
			||||||
func UpdateUser(user *User) (err error) {
 | 
					func UpdateUser(u *User) (err error) {
 | 
				
			||||||
	user.LowerName = strings.ToLower(user.Name)
 | 
						u.LowerName = strings.ToLower(u.Name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(user.Location) > 255 {
 | 
						if len(u.Location) > 255 {
 | 
				
			||||||
		user.Location = user.Location[:255]
 | 
							u.Location = u.Location[:255]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if len(user.Website) > 255 {
 | 
						if len(u.Website) > 255 {
 | 
				
			||||||
		user.Website = user.Website[:255]
 | 
							u.Website = u.Website[:255]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	_, err = orm.Id(user.Id).AllCols().Update(user)
 | 
						_, err = orm.Id(u.Id).AllCols().Update(u)
 | 
				
			||||||
	return err
 | 
						return err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -356,17 +356,16 @@ func GetUserByKeyId(keyId int64) (*User, error) {
 | 
				
			|||||||
	return user, nil
 | 
						return user, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetUserById returns the user object by given id if exists.
 | 
					// GetUserById returns the user object by given ID if exists.
 | 
				
			||||||
func GetUserById(id int64) (*User, error) {
 | 
					func GetUserById(id int64) (*User, error) {
 | 
				
			||||||
	user := new(User)
 | 
						u := new(User)
 | 
				
			||||||
	has, err := orm.Id(id).Get(user)
 | 
						has, err := orm.Id(id).Get(u)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						} else if !has {
 | 
				
			||||||
	if !has {
 | 
					 | 
				
			||||||
		return nil, ErrUserNotExist
 | 
							return nil, ErrUserNotExist
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return user, nil
 | 
						return u, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetUserByName returns the user object by given name if exists.
 | 
					// GetUserByName returns the user object by given name if exists.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,54 +19,54 @@ import (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SignedInId returns the id of signed in user.
 | 
					// SignedInId returns the id of signed in user.
 | 
				
			||||||
func SignedInId(session session.SessionStore) int64 {
 | 
					func SignedInId(sess session.SessionStore) int64 {
 | 
				
			||||||
	if !models.HasEngine {
 | 
						if !models.HasEngine {
 | 
				
			||||||
		return 0
 | 
							return 0
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	userId := session.Get("userId")
 | 
						uid := sess.Get("userId")
 | 
				
			||||||
	if userId == nil {
 | 
						if uid == nil {
 | 
				
			||||||
		return 0
 | 
							return 0
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if s, ok := userId.(int64); ok {
 | 
						if id, ok := uid.(int64); ok {
 | 
				
			||||||
		if _, err := models.GetUserById(s); err != nil {
 | 
							if _, err := models.GetUserById(id); err != nil {
 | 
				
			||||||
			return 0
 | 
								return 0
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return s
 | 
							return id
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return 0
 | 
						return 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SignedInName returns the name of signed in user.
 | 
					// SignedInName returns the name of signed in user.
 | 
				
			||||||
func SignedInName(session session.SessionStore) string {
 | 
					func SignedInName(sess session.SessionStore) string {
 | 
				
			||||||
	userName := session.Get("userName")
 | 
						uname := sess.Get("userName")
 | 
				
			||||||
	if userName == nil {
 | 
						if uname == nil {
 | 
				
			||||||
		return ""
 | 
							return ""
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if s, ok := userName.(string); ok {
 | 
						if s, ok := uname.(string); ok {
 | 
				
			||||||
		return s
 | 
							return s
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return ""
 | 
						return ""
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SignedInUser returns the user object of signed user.
 | 
					// SignedInUser returns the user object of signed user.
 | 
				
			||||||
func SignedInUser(session session.SessionStore) *models.User {
 | 
					func SignedInUser(sess session.SessionStore) *models.User {
 | 
				
			||||||
	id := SignedInId(session)
 | 
						uid := SignedInId(sess)
 | 
				
			||||||
	if id <= 0 {
 | 
						if uid <= 0 {
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	user, err := models.GetUserById(id)
 | 
						u, err := models.GetUserById(uid)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		log.Error("user.SignedInUser: %v", err)
 | 
							log.Error("user.SignedInUser: %v", err)
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return user
 | 
						return u
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// IsSignedIn check if any user has signed in.
 | 
					// IsSignedIn check if any user has signed in.
 | 
				
			||||||
func IsSignedIn(session session.SessionStore) bool {
 | 
					func IsSignedIn(sess session.SessionStore) bool {
 | 
				
			||||||
	return SignedInId(session) > 0
 | 
						return SignedInId(sess) > 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type FeedsForm struct {
 | 
					type FeedsForm struct {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,7 +29,7 @@ func NewMailMessage(To []string, subject, body string) Message {
 | 
				
			|||||||
	return NewMailMessageFrom(To, setting.MailService.From, subject, body)
 | 
						return NewMailMessageFrom(To, setting.MailService.From, subject, body)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func GetMailTmplData(user *models.User) map[interface{}]interface{} {
 | 
					func GetMailTmplData(u *models.User) map[interface{}]interface{} {
 | 
				
			||||||
	data := make(map[interface{}]interface{}, 10)
 | 
						data := make(map[interface{}]interface{}, 10)
 | 
				
			||||||
	data["AppName"] = setting.AppName
 | 
						data["AppName"] = setting.AppName
 | 
				
			||||||
	data["AppVer"] = setting.AppVer
 | 
						data["AppVer"] = setting.AppVer
 | 
				
			||||||
@@ -37,29 +37,29 @@ func GetMailTmplData(user *models.User) map[interface{}]interface{} {
 | 
				
			|||||||
	data["AppLogo"] = setting.AppLogo
 | 
						data["AppLogo"] = setting.AppLogo
 | 
				
			||||||
	data["ActiveCodeLives"] = setting.Service.ActiveCodeLives / 60
 | 
						data["ActiveCodeLives"] = setting.Service.ActiveCodeLives / 60
 | 
				
			||||||
	data["ResetPwdCodeLives"] = setting.Service.ResetPwdCodeLives / 60
 | 
						data["ResetPwdCodeLives"] = setting.Service.ResetPwdCodeLives / 60
 | 
				
			||||||
	if user != nil {
 | 
						if u != nil {
 | 
				
			||||||
		data["User"] = user
 | 
							data["User"] = u
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return data
 | 
						return data
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// create a time limit code for user active
 | 
					// create a time limit code for user active
 | 
				
			||||||
func CreateUserActiveCode(user *models.User, startInf interface{}) string {
 | 
					func CreateUserActiveCode(u *models.User, startInf interface{}) string {
 | 
				
			||||||
	minutes := setting.Service.ActiveCodeLives
 | 
						minutes := setting.Service.ActiveCodeLives
 | 
				
			||||||
	data := base.ToStr(user.Id) + user.Email + user.LowerName + user.Passwd + user.Rands
 | 
						data := base.ToStr(u.Id) + u.Email + u.LowerName + u.Passwd + u.Rands
 | 
				
			||||||
	code := base.CreateTimeLimitCode(data, minutes, startInf)
 | 
						code := base.CreateTimeLimitCode(data, minutes, startInf)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// add tail hex username
 | 
						// add tail hex username
 | 
				
			||||||
	code += hex.EncodeToString([]byte(user.LowerName))
 | 
						code += hex.EncodeToString([]byte(u.LowerName))
 | 
				
			||||||
	return code
 | 
						return code
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Send user register mail with active code
 | 
					// Send user register mail with active code
 | 
				
			||||||
func SendRegisterMail(r *middleware.Render, user *models.User) {
 | 
					func SendRegisterMail(r *middleware.Render, u *models.User) {
 | 
				
			||||||
	code := CreateUserActiveCode(user, nil)
 | 
						code := CreateUserActiveCode(u, nil)
 | 
				
			||||||
	subject := "Register success, Welcome"
 | 
						subject := "Register success, Welcome"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	data := GetMailTmplData(user)
 | 
						data := GetMailTmplData(u)
 | 
				
			||||||
	data["Code"] = code
 | 
						data["Code"] = code
 | 
				
			||||||
	body, err := r.HTMLString("mail/auth/register_success", data)
 | 
						body, err := r.HTMLString("mail/auth/register_success", data)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
@@ -67,19 +67,19 @@ func SendRegisterMail(r *middleware.Render, user *models.User) {
 | 
				
			|||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	msg := NewMailMessage([]string{user.Email}, subject, body)
 | 
						msg := NewMailMessage([]string{u.Email}, subject, body)
 | 
				
			||||||
	msg.Info = fmt.Sprintf("UID: %d, send register mail", user.Id)
 | 
						msg.Info = fmt.Sprintf("UID: %d, send register mail", u.Id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	SendAsync(&msg)
 | 
						SendAsync(&msg)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Send email verify active email.
 | 
					// Send email verify active email.
 | 
				
			||||||
func SendActiveMail(r *middleware.Render, user *models.User) {
 | 
					func SendActiveMail(r *middleware.Render, u *models.User) {
 | 
				
			||||||
	code := CreateUserActiveCode(user, nil)
 | 
						code := CreateUserActiveCode(u, nil)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	subject := "Verify your e-mail address"
 | 
						subject := "Verify your e-mail address"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	data := GetMailTmplData(user)
 | 
						data := GetMailTmplData(u)
 | 
				
			||||||
	data["Code"] = code
 | 
						data["Code"] = code
 | 
				
			||||||
	body, err := r.HTMLString("mail/auth/active_email", data)
 | 
						body, err := r.HTMLString("mail/auth/active_email", data)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
@@ -87,19 +87,19 @@ func SendActiveMail(r *middleware.Render, user *models.User) {
 | 
				
			|||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	msg := NewMailMessage([]string{user.Email}, subject, body)
 | 
						msg := NewMailMessage([]string{u.Email}, subject, body)
 | 
				
			||||||
	msg.Info = fmt.Sprintf("UID: %d, send active mail", user.Id)
 | 
						msg.Info = fmt.Sprintf("UID: %d, send active mail", u.Id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	SendAsync(&msg)
 | 
						SendAsync(&msg)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Send reset password email.
 | 
					// Send reset password email.
 | 
				
			||||||
func SendResetPasswdMail(r *middleware.Render, user *models.User) {
 | 
					func SendResetPasswdMail(r *middleware.Render, u *models.User) {
 | 
				
			||||||
	code := CreateUserActiveCode(user, nil)
 | 
						code := CreateUserActiveCode(u, nil)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	subject := "Reset your password"
 | 
						subject := "Reset your password"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	data := GetMailTmplData(user)
 | 
						data := GetMailTmplData(u)
 | 
				
			||||||
	data["Code"] = code
 | 
						data["Code"] = code
 | 
				
			||||||
	body, err := r.HTMLString("mail/auth/reset_passwd", data)
 | 
						body, err := r.HTMLString("mail/auth/reset_passwd", data)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
@@ -107,14 +107,14 @@ func SendResetPasswdMail(r *middleware.Render, user *models.User) {
 | 
				
			|||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	msg := NewMailMessage([]string{user.Email}, subject, body)
 | 
						msg := NewMailMessage([]string{u.Email}, subject, body)
 | 
				
			||||||
	msg.Info = fmt.Sprintf("UID: %d, send reset password email", user.Id)
 | 
						msg.Info = fmt.Sprintf("UID: %d, send reset password email", u.Id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	SendAsync(&msg)
 | 
						SendAsync(&msg)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SendIssueNotifyMail sends mail notification of all watchers of repository.
 | 
					// SendIssueNotifyMail sends mail notification of all watchers of repository.
 | 
				
			||||||
func SendIssueNotifyMail(user, owner *models.User, repo *models.Repository, issue *models.Issue) ([]string, error) {
 | 
					func SendIssueNotifyMail(u, owner *models.User, repo *models.Repository, issue *models.Issue) ([]string, error) {
 | 
				
			||||||
	ws, err := models.GetWatchers(repo.Id)
 | 
						ws, err := models.GetWatchers(repo.Id)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.New("mail.NotifyWatchers(GetWatchers): " + err.Error())
 | 
							return nil, errors.New("mail.NotifyWatchers(GetWatchers): " + err.Error())
 | 
				
			||||||
@@ -123,7 +123,7 @@ func SendIssueNotifyMail(user, owner *models.User, repo *models.Repository, issu
 | 
				
			|||||||
	tos := make([]string, 0, len(ws))
 | 
						tos := make([]string, 0, len(ws))
 | 
				
			||||||
	for i := range ws {
 | 
						for i := range ws {
 | 
				
			||||||
		uid := ws[i].UserId
 | 
							uid := ws[i].UserId
 | 
				
			||||||
		if user.Id == uid {
 | 
							if u.Id == uid {
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		u, err := models.GetUserById(uid)
 | 
							u, err := models.GetUserById(uid)
 | 
				
			||||||
@@ -141,14 +141,14 @@ func SendIssueNotifyMail(user, owner *models.User, repo *models.Repository, issu
 | 
				
			|||||||
	content := fmt.Sprintf("%s<br>-<br> <a href=\"%s%s/%s/issues/%d\">View it on Gogs</a>.",
 | 
						content := fmt.Sprintf("%s<br>-<br> <a href=\"%s%s/%s/issues/%d\">View it on Gogs</a>.",
 | 
				
			||||||
		base.RenderSpecialLink([]byte(issue.Content), owner.Name+"/"+repo.Name),
 | 
							base.RenderSpecialLink([]byte(issue.Content), owner.Name+"/"+repo.Name),
 | 
				
			||||||
		setting.AppUrl, owner.Name, repo.Name, issue.Index)
 | 
							setting.AppUrl, owner.Name, repo.Name, issue.Index)
 | 
				
			||||||
	msg := NewMailMessageFrom(tos, user.Email, subject, content)
 | 
						msg := NewMailMessageFrom(tos, u.Email, subject, content)
 | 
				
			||||||
	msg.Info = fmt.Sprintf("Subject: %s, send issue notify emails", subject)
 | 
						msg.Info = fmt.Sprintf("Subject: %s, send issue notify emails", subject)
 | 
				
			||||||
	SendAsync(&msg)
 | 
						SendAsync(&msg)
 | 
				
			||||||
	return tos, nil
 | 
						return tos, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SendIssueMentionMail sends mail notification for who are mentioned in issue.
 | 
					// SendIssueMentionMail sends mail notification for who are mentioned in issue.
 | 
				
			||||||
func SendIssueMentionMail(r *middleware.Render, user, owner *models.User,
 | 
					func SendIssueMentionMail(r *middleware.Render, u, owner *models.User,
 | 
				
			||||||
	repo *models.Repository, issue *models.Issue, tos []string) error {
 | 
						repo *models.Repository, issue *models.Issue, tos []string) error {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(tos) == 0 {
 | 
						if len(tos) == 0 {
 | 
				
			||||||
@@ -166,14 +166,14 @@ func SendIssueMentionMail(r *middleware.Render, user, owner *models.User,
 | 
				
			|||||||
		return fmt.Errorf("mail.SendIssueMentionMail(fail to render): %v", err)
 | 
							return fmt.Errorf("mail.SendIssueMentionMail(fail to render): %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	msg := NewMailMessageFrom(tos, user.Email, subject, body)
 | 
						msg := NewMailMessageFrom(tos, u.Email, subject, body)
 | 
				
			||||||
	msg.Info = fmt.Sprintf("Subject: %s, send issue mention emails", subject)
 | 
						msg.Info = fmt.Sprintf("Subject: %s, send issue mention emails", subject)
 | 
				
			||||||
	SendAsync(&msg)
 | 
						SendAsync(&msg)
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SendCollaboratorMail sends mail notification to new collaborator.
 | 
					// SendCollaboratorMail sends mail notification to new collaborator.
 | 
				
			||||||
func SendCollaboratorMail(r *middleware.Render, user, owner *models.User,
 | 
					func SendCollaboratorMail(r *middleware.Render, u, owner *models.User,
 | 
				
			||||||
	repo *models.Repository) error {
 | 
						repo *models.Repository) error {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	subject := fmt.Sprintf("%s added you to %s", owner.Name, repo.Name)
 | 
						subject := fmt.Sprintf("%s added you to %s", owner.Name, repo.Name)
 | 
				
			||||||
@@ -187,8 +187,8 @@ func SendCollaboratorMail(r *middleware.Render, user, owner *models.User,
 | 
				
			|||||||
		return fmt.Errorf("mail.SendCollaboratorMail(fail to render): %v", err)
 | 
							return fmt.Errorf("mail.SendCollaboratorMail(fail to render): %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	msg := NewMailMessage([]string{user.Email}, subject, body)
 | 
						msg := NewMailMessage([]string{u.Email}, subject, body)
 | 
				
			||||||
	msg.Info = fmt.Sprintf("UID: %d, send register mail", user.Id)
 | 
						msg.Info = fmt.Sprintf("UID: %d, send register mail", u.Id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	SendAsync(&msg)
 | 
						SendAsync(&msg)
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,8 +32,8 @@ func SignIn(ctx *middleware.Context) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Check auto-login.
 | 
						// Check auto-login.
 | 
				
			||||||
	userName := ctx.GetCookie(setting.CookieUserName)
 | 
						uname := ctx.GetCookie(setting.CookieUserName)
 | 
				
			||||||
	if len(userName) == 0 {
 | 
						if len(uname) == 0 {
 | 
				
			||||||
		ctx.HTML(200, "user/signin")
 | 
							ctx.HTML(200, "user/signin")
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -41,14 +41,14 @@ func SignIn(ctx *middleware.Context) {
 | 
				
			|||||||
	isSucceed := false
 | 
						isSucceed := false
 | 
				
			||||||
	defer func() {
 | 
						defer func() {
 | 
				
			||||||
		if !isSucceed {
 | 
							if !isSucceed {
 | 
				
			||||||
			log.Trace("user.SignIn(auto-login cookie cleared): %s", userName)
 | 
								log.Trace("user.SignIn(auto-login cookie cleared): %s", uname)
 | 
				
			||||||
			ctx.SetCookie(setting.CookieUserName, "", -1)
 | 
								ctx.SetCookie(setting.CookieUserName, "", -1)
 | 
				
			||||||
			ctx.SetCookie(setting.CookieRememberName, "", -1)
 | 
								ctx.SetCookie(setting.CookieRememberName, "", -1)
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	user, err := models.GetUserByName(userName)
 | 
						user, err := models.GetUserByName(uname)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		ctx.Handle(500, "user.SignIn(GetUserByName)", err)
 | 
							ctx.Handle(500, "user.SignIn(GetUserByName)", err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
@@ -90,7 +90,7 @@ func SignInPost(ctx *middleware.Context, form auth.LogInForm) {
 | 
				
			|||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	user, err := models.LoginUser(form.UserName, form.Password)
 | 
						user, err := models.UserSignIn(form.UserName, form.Password)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		if err == models.ErrUserNotExist {
 | 
							if err == models.ErrUserNotExist {
 | 
				
			||||||
			log.Trace("%s Log in failed: %s", ctx.Req.RequestURI, form.UserName)
 | 
								log.Trace("%s Log in failed: %s", ctx.Req.RequestURI, form.UserName)
 | 
				
			||||||
@@ -98,7 +98,7 @@ func SignInPost(ctx *middleware.Context, form auth.LogInForm) {
 | 
				
			|||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ctx.Handle(500, "user.SignIn", err)
 | 
							ctx.Handle(500, "user.SignInPost(UserSignIn)", err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -220,17 +220,18 @@ func SignUpPost(ctx *middleware.Context, form auth.RegisterForm) {
 | 
				
			|||||||
	if u, err = models.RegisterUser(u); err != nil {
 | 
						if u, err = models.RegisterUser(u); err != nil {
 | 
				
			||||||
		switch err {
 | 
							switch err {
 | 
				
			||||||
		case models.ErrUserAlreadyExist:
 | 
							case models.ErrUserAlreadyExist:
 | 
				
			||||||
 | 
								ctx.Data["Err_UserName"] = true
 | 
				
			||||||
			ctx.RenderWithErr("Username has been already taken", "user/signup", &form)
 | 
								ctx.RenderWithErr("Username has been already taken", "user/signup", &form)
 | 
				
			||||||
		case models.ErrEmailAlreadyUsed:
 | 
							case models.ErrEmailAlreadyUsed:
 | 
				
			||||||
 | 
								ctx.Data["Err_Email"] = true
 | 
				
			||||||
			ctx.RenderWithErr("E-mail address has been already used", "user/signup", &form)
 | 
								ctx.RenderWithErr("E-mail address has been already used", "user/signup", &form)
 | 
				
			||||||
		case models.ErrUserNameIllegal:
 | 
							case models.ErrUserNameIllegal:
 | 
				
			||||||
			ctx.RenderWithErr(models.ErrRepoNameIllegal.Error(), "user/signup", &form)
 | 
								ctx.RenderWithErr(models.ErrRepoNameIllegal.Error(), "user/signup", &form)
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			ctx.Handle(500, "user.SignUp(RegisterUser)", err)
 | 
								ctx.Handle(500, "user.SignUpPost(RegisterUser)", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	log.Trace("%s User created: %s", ctx.Req.RequestURI, form.UserName)
 | 
						log.Trace("%s User created: %s", ctx.Req.RequestURI, form.UserName)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Bind social account.
 | 
						// Bind social account.
 | 
				
			||||||
@@ -256,6 +257,7 @@ func SignUpPost(ctx *middleware.Context, form auth.RegisterForm) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx.Redirect("/user/login")
 | 
						ctx.Redirect("/user/login")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
0.4.1.0603 Alpha
 | 
					0.4.2.0605 Alpha
 | 
				
			||||||
@@ -71,21 +71,21 @@
 | 
				
			|||||||
                    <div class="form-group {{if .Err_Attributes}}has-error has-feedback{{end}}">
 | 
					                    <div class="form-group {{if .Err_Attributes}}has-error has-feedback{{end}}">
 | 
				
			||||||
                        <label class="col-md-3 control-label">Search Attributes: </label>
 | 
					                        <label class="col-md-3 control-label">Search Attributes: </label>
 | 
				
			||||||
                        <div class="col-md-7">
 | 
					                        <div class="col-md-7">
 | 
				
			||||||
                            <input name="attributes" class="form-control" placeholder="Type search attributes" value="{{.Source.LDAP.Attributes}}" required="required">
 | 
					                            <input name="attributes" class="form-control" placeholder="Type search attributes" value="{{.Source.LDAP.Attributes}}">
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    <div class="form-group {{if .Err_Filter}}has-error has-feedback{{end}}">
 | 
					                    <div class="form-group {{if .Err_Filter}}has-error has-feedback{{end}}">
 | 
				
			||||||
                        <label class="col-md-3 control-label">Search Filter: </label>
 | 
					                        <label class="col-md-3 control-label">Search Filter: </label>
 | 
				
			||||||
                        <div class="col-md-7">
 | 
					                        <div class="col-md-7">
 | 
				
			||||||
                            <input name="filter" class="form-control" placeholder="Type search filter" value="{{.Source.LDAP.Filter}}" required="required">
 | 
					                            <input name="filter" class="form-control" placeholder="Type search filter" value="{{.Source.LDAP.Filter}}">
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    <div class="form-group {{if .Err_MsAdSA}}has-error has-feedback{{end}}">
 | 
					                    <div class="form-group {{if .Err_MsAdSA}}has-error has-feedback{{end}}">
 | 
				
			||||||
                        <label class="col-md-3 control-label">Ms Ad SA: </label>
 | 
					                        <label class="col-md-3 control-label">Ms Ad SA: </label>
 | 
				
			||||||
                        <div class="col-md-7">
 | 
					                        <div class="col-md-7">
 | 
				
			||||||
                            <input name="ms_ad_sa" class="form-control" placeholder="Type Ms Ad SA" value="{{.Source.LDAP.MsAdSAFormat}}" required="required">
 | 
					                            <input name="ms_ad_sa" class="form-control" placeholder="Type Ms Ad SA" value="{{.Source.LDAP.MsAdSAFormat}}">
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                    {{else if eq $type 3}}
 | 
					                    {{else if eq $type 3}}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user