From 4f2f3c285717eff7a2f4ae2b79fbb0809e786dc8 Mon Sep 17 00:00:00 2001
From: Unknown <joe2010xtmf@163.com>
Date: Thu, 5 Jun 2014 22:07:35 -0400
Subject: [PATCH] Code convention

---
 README.md                       |  2 +-
 README_ZH.md                    |  2 +-
 cmd/web.go                      |  8 +++--
 gogs.go                         |  2 +-
 models/login.go                 |  4 +--
 models/user.go                  | 27 ++++++++-------
 modules/auth/user.go            | 34 +++++++++----------
 modules/mailer/mail.go          | 58 ++++++++++++++++-----------------
 routers/user/user.go            | 18 +++++-----
 templates/VERSION               |  2 +-
 templates/admin/auths/edit.tmpl |  6 ++--
 11 files changed, 83 insertions(+), 80 deletions(-)

diff --git a/README.md b/README.md
index 2de797afd2..8887081911 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@ Gogs(Go Git Service) is a Self Hosted Git Service in the Go Programming Language
 
 ![Demo](http://gowalker.org/public/gogs_demo.gif)
 
-##### Current version: 0.4.0 Alpha
+##### Current version: 0.4.2 Alpha
 
 ### NOTICES
 
diff --git a/README_ZH.md b/README_ZH.md
index f3be4418d1..84af15a6a5 100644
--- a/README_ZH.md
+++ b/README_ZH.md
@@ -5,7 +5,7 @@ Gogs(Go Git Service) 是一个由 Go 语言编写的自助 Git 托管服务。
 
 ![Demo](http://gowalker.org/public/gogs_demo.gif)
 
-##### 当前版本:0.4.0 Alpha
+##### 当前版本:0.4.2 Alpha
 
 ## 开发目的
 
diff --git a/cmd/web.go b/cmd/web.go
index dc4daca085..30db037a2c 100644
--- a/cmd/web.go
+++ b/cmd/web.go
@@ -89,9 +89,11 @@ func runWeb(*cli.Context) {
 	m.Get("/", ignSignIn, routers.Home)
 	m.Get("/install", bindIgnErr(auth.InstallForm{}), routers.Install)
 	m.Post("/install", bindIgnErr(auth.InstallForm{}), routers.InstallPost)
-	m.Get("/issues", reqSignIn, user.Issues)
-	m.Get("/pulls", reqSignIn, user.Pulls)
-	m.Get("/stars", reqSignIn, user.Stars)
+	m.Group("", func(r martini.Router) {
+		r.Get("/issues", user.Issues)
+		r.Get("/pulls", user.Pulls)
+		r.Get("/stars", user.Stars)
+	}, reqSignIn)
 
 	m.Group("/api", func(r martini.Router) {
 		m.Group("/v1", func(r martini.Router) {
diff --git a/gogs.go b/gogs.go
index cf35af7543..aabcbe82e1 100644
--- a/gogs.go
+++ b/gogs.go
@@ -17,7 +17,7 @@ import (
 	"github.com/gogits/gogs/modules/setting"
 )
 
-const APP_VER = "0.4.1.0603 Alpha"
+const APP_VER = "0.4.2.0605 Alpha"
 
 func init() {
 	runtime.GOMAXPROCS(runtime.NumCPU())
diff --git a/models/login.go b/models/login.go
index 3efef2f78f..984a9f8c30 100644
--- a/models/login.go
+++ b/models/login.go
@@ -150,8 +150,8 @@ func DelLoginSource(source *LoginSource) error {
 	return err
 }
 
-// login a user
-func LoginUser(uname, passwd string) (*User, error) {
+// UserSignIn validates user name and password.
+func UserSignIn(uname, passwd string) (*User, error) {
 	var u *User
 	if strings.Contains(uname, "@") {
 		u = &User{Email: uname}
diff --git a/models/user.go b/models/user.go
index f95f303b2b..78ab464249 100644
--- a/models/user.go
+++ b/models/user.go
@@ -72,7 +72,7 @@ func (user *User) HomeLink() string {
 	return "/user/" + user.Name
 }
 
-// AvatarLink returns the user gravatar link.
+// AvatarLink returns user gravatar link.
 func (user *User) AvatarLink() string {
 	if setting.DisableGravatar {
 		return "/img/avatar_default.jpg"
@@ -268,17 +268,17 @@ func ChangeUserName(user *User, newUserName string) (err error) {
 }
 
 // UpdateUser updates user's information.
-func UpdateUser(user *User) (err error) {
-	user.LowerName = strings.ToLower(user.Name)
+func UpdateUser(u *User) (err error) {
+	u.LowerName = strings.ToLower(u.Name)
 
-	if len(user.Location) > 255 {
-		user.Location = user.Location[:255]
+	if len(u.Location) > 255 {
+		u.Location = u.Location[:255]
 	}
-	if len(user.Website) > 255 {
-		user.Website = user.Website[:255]
+	if len(u.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
 }
 
@@ -356,17 +356,16 @@ func GetUserByKeyId(keyId int64) (*User, error) {
 	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) {
-	user := new(User)
-	has, err := orm.Id(id).Get(user)
+	u := new(User)
+	has, err := orm.Id(id).Get(u)
 	if err != nil {
 		return nil, err
-	}
-	if !has {
+	} else if !has {
 		return nil, ErrUserNotExist
 	}
-	return user, nil
+	return u, nil
 }
 
 // GetUserByName returns the user object by given name if exists.
diff --git a/modules/auth/user.go b/modules/auth/user.go
index e672a9c10f..3763c0fc64 100644
--- a/modules/auth/user.go
+++ b/modules/auth/user.go
@@ -19,54 +19,54 @@ import (
 )
 
 // SignedInId returns the id of signed in user.
-func SignedInId(session session.SessionStore) int64 {
+func SignedInId(sess session.SessionStore) int64 {
 	if !models.HasEngine {
 		return 0
 	}
 
-	userId := session.Get("userId")
-	if userId == nil {
+	uid := sess.Get("userId")
+	if uid == nil {
 		return 0
 	}
-	if s, ok := userId.(int64); ok {
-		if _, err := models.GetUserById(s); err != nil {
+	if id, ok := uid.(int64); ok {
+		if _, err := models.GetUserById(id); err != nil {
 			return 0
 		}
-		return s
+		return id
 	}
 	return 0
 }
 
 // SignedInName returns the name of signed in user.
-func SignedInName(session session.SessionStore) string {
-	userName := session.Get("userName")
-	if userName == nil {
+func SignedInName(sess session.SessionStore) string {
+	uname := sess.Get("userName")
+	if uname == nil {
 		return ""
 	}
-	if s, ok := userName.(string); ok {
+	if s, ok := uname.(string); ok {
 		return s
 	}
 	return ""
 }
 
 // SignedInUser returns the user object of signed user.
-func SignedInUser(session session.SessionStore) *models.User {
-	id := SignedInId(session)
-	if id <= 0 {
+func SignedInUser(sess session.SessionStore) *models.User {
+	uid := SignedInId(sess)
+	if uid <= 0 {
 		return nil
 	}
 
-	user, err := models.GetUserById(id)
+	u, err := models.GetUserById(uid)
 	if err != nil {
 		log.Error("user.SignedInUser: %v", err)
 		return nil
 	}
-	return user
+	return u
 }
 
 // IsSignedIn check if any user has signed in.
-func IsSignedIn(session session.SessionStore) bool {
-	return SignedInId(session) > 0
+func IsSignedIn(sess session.SessionStore) bool {
+	return SignedInId(sess) > 0
 }
 
 type FeedsForm struct {
diff --git a/modules/mailer/mail.go b/modules/mailer/mail.go
index 4ebabae818..e212d0066f 100644
--- a/modules/mailer/mail.go
+++ b/modules/mailer/mail.go
@@ -29,7 +29,7 @@ func NewMailMessage(To []string, subject, body string) Message {
 	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["AppName"] = setting.AppName
 	data["AppVer"] = setting.AppVer
@@ -37,29 +37,29 @@ func GetMailTmplData(user *models.User) map[interface{}]interface{} {
 	data["AppLogo"] = setting.AppLogo
 	data["ActiveCodeLives"] = setting.Service.ActiveCodeLives / 60
 	data["ResetPwdCodeLives"] = setting.Service.ResetPwdCodeLives / 60
-	if user != nil {
-		data["User"] = user
+	if u != nil {
+		data["User"] = u
 	}
 	return data
 }
 
 // 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
-	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)
 
 	// add tail hex username
-	code += hex.EncodeToString([]byte(user.LowerName))
+	code += hex.EncodeToString([]byte(u.LowerName))
 	return code
 }
 
 // Send user register mail with active code
-func SendRegisterMail(r *middleware.Render, user *models.User) {
-	code := CreateUserActiveCode(user, nil)
+func SendRegisterMail(r *middleware.Render, u *models.User) {
+	code := CreateUserActiveCode(u, nil)
 	subject := "Register success, Welcome"
 
-	data := GetMailTmplData(user)
+	data := GetMailTmplData(u)
 	data["Code"] = code
 	body, err := r.HTMLString("mail/auth/register_success", data)
 	if err != nil {
@@ -67,19 +67,19 @@ func SendRegisterMail(r *middleware.Render, user *models.User) {
 		return
 	}
 
-	msg := NewMailMessage([]string{user.Email}, subject, body)
-	msg.Info = fmt.Sprintf("UID: %d, send register mail", user.Id)
+	msg := NewMailMessage([]string{u.Email}, subject, body)
+	msg.Info = fmt.Sprintf("UID: %d, send register mail", u.Id)
 
 	SendAsync(&msg)
 }
 
 // Send email verify active email.
-func SendActiveMail(r *middleware.Render, user *models.User) {
-	code := CreateUserActiveCode(user, nil)
+func SendActiveMail(r *middleware.Render, u *models.User) {
+	code := CreateUserActiveCode(u, nil)
 
 	subject := "Verify your e-mail address"
 
-	data := GetMailTmplData(user)
+	data := GetMailTmplData(u)
 	data["Code"] = code
 	body, err := r.HTMLString("mail/auth/active_email", data)
 	if err != nil {
@@ -87,19 +87,19 @@ func SendActiveMail(r *middleware.Render, user *models.User) {
 		return
 	}
 
-	msg := NewMailMessage([]string{user.Email}, subject, body)
-	msg.Info = fmt.Sprintf("UID: %d, send active mail", user.Id)
+	msg := NewMailMessage([]string{u.Email}, subject, body)
+	msg.Info = fmt.Sprintf("UID: %d, send active mail", u.Id)
 
 	SendAsync(&msg)
 }
 
 // Send reset password email.
-func SendResetPasswdMail(r *middleware.Render, user *models.User) {
-	code := CreateUserActiveCode(user, nil)
+func SendResetPasswdMail(r *middleware.Render, u *models.User) {
+	code := CreateUserActiveCode(u, nil)
 
 	subject := "Reset your password"
 
-	data := GetMailTmplData(user)
+	data := GetMailTmplData(u)
 	data["Code"] = code
 	body, err := r.HTMLString("mail/auth/reset_passwd", data)
 	if err != nil {
@@ -107,14 +107,14 @@ func SendResetPasswdMail(r *middleware.Render, user *models.User) {
 		return
 	}
 
-	msg := NewMailMessage([]string{user.Email}, subject, body)
-	msg.Info = fmt.Sprintf("UID: %d, send reset password email", user.Id)
+	msg := NewMailMessage([]string{u.Email}, subject, body)
+	msg.Info = fmt.Sprintf("UID: %d, send reset password email", u.Id)
 
 	SendAsync(&msg)
 }
 
 // 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)
 	if err != nil {
 		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))
 	for i := range ws {
 		uid := ws[i].UserId
-		if user.Id == uid {
+		if u.Id == uid {
 			continue
 		}
 		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>.",
 		base.RenderSpecialLink([]byte(issue.Content), owner.Name+"/"+repo.Name),
 		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)
 	SendAsync(&msg)
 	return tos, nil
 }
 
 // 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 {
 
 	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)
 	}
 
-	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)
 	SendAsync(&msg)
 	return nil
 }
 
 // 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 {
 
 	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)
 	}
 
-	msg := NewMailMessage([]string{user.Email}, subject, body)
-	msg.Info = fmt.Sprintf("UID: %d, send register mail", user.Id)
+	msg := NewMailMessage([]string{u.Email}, subject, body)
+	msg.Info = fmt.Sprintf("UID: %d, send register mail", u.Id)
 
 	SendAsync(&msg)
 	return nil
diff --git a/routers/user/user.go b/routers/user/user.go
index a5b3e79253..8fcbeb6a46 100644
--- a/routers/user/user.go
+++ b/routers/user/user.go
@@ -32,8 +32,8 @@ func SignIn(ctx *middleware.Context) {
 	}
 
 	// Check auto-login.
-	userName := ctx.GetCookie(setting.CookieUserName)
-	if len(userName) == 0 {
+	uname := ctx.GetCookie(setting.CookieUserName)
+	if len(uname) == 0 {
 		ctx.HTML(200, "user/signin")
 		return
 	}
@@ -41,14 +41,14 @@ func SignIn(ctx *middleware.Context) {
 	isSucceed := false
 	defer func() {
 		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.CookieRememberName, "", -1)
 			return
 		}
 	}()
 
-	user, err := models.GetUserByName(userName)
+	user, err := models.GetUserByName(uname)
 	if err != nil {
 		ctx.Handle(500, "user.SignIn(GetUserByName)", err)
 		return
@@ -90,7 +90,7 @@ func SignInPost(ctx *middleware.Context, form auth.LogInForm) {
 		return
 	}
 
-	user, err := models.LoginUser(form.UserName, form.Password)
+	user, err := models.UserSignIn(form.UserName, form.Password)
 	if err != nil {
 		if err == models.ErrUserNotExist {
 			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
 		}
 
-		ctx.Handle(500, "user.SignIn", err)
+		ctx.Handle(500, "user.SignInPost(UserSignIn)", err)
 		return
 	}
 
@@ -220,17 +220,18 @@ func SignUpPost(ctx *middleware.Context, form auth.RegisterForm) {
 	if u, err = models.RegisterUser(u); err != nil {
 		switch err {
 		case models.ErrUserAlreadyExist:
+			ctx.Data["Err_UserName"] = true
 			ctx.RenderWithErr("Username has been already taken", "user/signup", &form)
 		case models.ErrEmailAlreadyUsed:
+			ctx.Data["Err_Email"] = true
 			ctx.RenderWithErr("E-mail address has been already used", "user/signup", &form)
 		case models.ErrUserNameIllegal:
 			ctx.RenderWithErr(models.ErrRepoNameIllegal.Error(), "user/signup", &form)
 		default:
-			ctx.Handle(500, "user.SignUp(RegisterUser)", err)
+			ctx.Handle(500, "user.SignUpPost(RegisterUser)", err)
 		}
 		return
 	}
-
 	log.Trace("%s User created: %s", ctx.Req.RequestURI, form.UserName)
 
 	// Bind social account.
@@ -256,6 +257,7 @@ func SignUpPost(ctx *middleware.Context, form auth.RegisterForm) {
 		}
 		return
 	}
+
 	ctx.Redirect("/user/login")
 }
 
diff --git a/templates/VERSION b/templates/VERSION
index 7f97ea1c45..7ba2c25f9a 100644
--- a/templates/VERSION
+++ b/templates/VERSION
@@ -1 +1 @@
-0.4.1.0603 Alpha
\ No newline at end of file
+0.4.2.0605 Alpha
\ No newline at end of file
diff --git a/templates/admin/auths/edit.tmpl b/templates/admin/auths/edit.tmpl
index deea447c89..a2c2ddc698 100644
--- a/templates/admin/auths/edit.tmpl
+++ b/templates/admin/auths/edit.tmpl
@@ -71,21 +71,21 @@
                     <div class="form-group {{if .Err_Attributes}}has-error has-feedback{{end}}">
                         <label class="col-md-3 control-label">Search Attributes: </label>
                         <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 class="form-group {{if .Err_Filter}}has-error has-feedback{{end}}">
                         <label class="col-md-3 control-label">Search Filter: </label>
                         <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 class="form-group {{if .Err_MsAdSA}}has-error has-feedback{{end}}">
                         <label class="col-md-3 control-label">Ms Ad SA: </label>
                         <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>
                     {{else if eq $type 3}}