aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gogs.go2
-rw-r--r--models/repo.go1
-rw-r--r--modules/mailer/mail.go11
-rwxr-xr-xpublic/css/gogs.css4
-rw-r--r--routers/repo/issue.go14
-rw-r--r--routers/user/user.go76
-rw-r--r--web.go24
7 files changed, 71 insertions, 61 deletions
diff --git a/gogs.go b/gogs.go
index a81f3ab597..88f53eeb8e 100644
--- a/gogs.go
+++ b/gogs.go
@@ -19,7 +19,7 @@ import (
// Test that go1.2 tag above is included in builds. main.go refers to this definition.
const go12tag = true
-const APP_VER = "0.2.0.0401 Alpha"
+const APP_VER = "0.2.0.0402 Alpha"
func init() {
base.AppVer = APP_VER
diff --git a/models/repo.go b/models/repo.go
index 0c808f1845..8dd7da23f1 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -513,6 +513,7 @@ func NotifyWatchers(act *Action) error {
continue
}
+ act.Id = 0
act.UserId = watches[i].UserId
if _, err = orm.InsertOne(act); err != nil {
return errors.New("repo.NotifyWatchers(create action): " + err.Error())
diff --git a/modules/mailer/mail.go b/modules/mailer/mail.go
index d0decbe068..b99fc8fdfc 100644
--- a/modules/mailer/mail.go
+++ b/modules/mailer/mail.go
@@ -92,8 +92,8 @@ func SendActiveMail(r *middleware.Render, user *models.User) {
}
// SendNotifyMail sends mail notification of all watchers.
-func SendNotifyMail(userId, repoId int64, userName, repoName, subject, content string) error {
- watches, err := models.GetWatches(repoId)
+func SendNotifyMail(user, owner *models.User, repo *models.Repository, issue *models.Issue) error {
+ watches, err := models.GetWatches(repo.Id)
if err != nil {
return errors.New("mail.NotifyWatchers(get watches): " + err.Error())
}
@@ -101,7 +101,7 @@ func SendNotifyMail(userId, repoId int64, userName, repoName, subject, content s
tos := make([]string, 0, len(watches))
for i := range watches {
uid := watches[i].UserId
- if userId == uid {
+ if user.Id == uid {
continue
}
u, err := models.GetUserById(uid)
@@ -115,7 +115,10 @@ func SendNotifyMail(userId, repoId int64, userName, repoName, subject, content s
return nil
}
- msg := NewMailMessageFrom(tos, userName, subject, content)
+ subject := fmt.Sprintf("[%s] %s", repo.Name, issue.Name)
+ content := fmt.Sprintf("%s<br>-<br> <a href=\"%s%s/%s/issues/%d\">View it on Gogs</a>.",
+ issue.Content, base.AppUrl, owner.Name, repo.Name, issue.Index)
+ msg := NewMailMessageFrom(tos, user.Name, subject, content)
msg.Info = fmt.Sprintf("Subject: %s, send notify emails", subject)
SendAsync(&msg)
return nil
diff --git a/public/css/gogs.css b/public/css/gogs.css
index a018a9dbae..6bed771140 100755
--- a/public/css/gogs.css
+++ b/public/css/gogs.css
@@ -1235,9 +1235,9 @@ html, body {
/* admin dashboard/configuration */
.admin-dl-horizontal > dt {
- width: 320px;
+ width: 220px;
}
.admin-dl-horizontal > dd {
- margin-left: 340px;
+ margin-left: 240px;
}
diff --git a/routers/repo/issue.go b/routers/repo/issue.go
index 6cad2c25d2..41b2c7e9b1 100644
--- a/routers/repo/issue.go
+++ b/routers/repo/issue.go
@@ -31,7 +31,8 @@ func Issues(ctx *middleware.Context) {
ctx.Data["IssueCreatedCount"] = 0
var posterId int64 = 0
- if ctx.Query("type") == "created_by" {
+ isCreatedBy := ctx.Query("type") == "created_by"
+ if isCreatedBy {
if !ctx.IsSigned {
ctx.SetCookie("redirect_to", "/"+url.QueryEscape(ctx.Req.RequestURI))
ctx.Redirect("/user/login/", 302)
@@ -53,6 +54,7 @@ func Issues(ctx *middleware.Context) {
}
var createdByCount int
+ showIssues := make([]models.Issue, 0, len(issues))
// Get posters.
for i := range issues {
u, err := models.GetUserById(issues[i].PosterId)
@@ -60,13 +62,17 @@ func Issues(ctx *middleware.Context) {
ctx.Handle(200, "issue.Issues(get poster): %v", err)
return
}
- issues[i].Poster = u
+ if isCreatedBy && u.Id != posterId {
+ continue
+ }
if u.Id == posterId {
createdByCount++
}
+ issues[i].Poster = u
+ showIssues = append(showIssues, issues[i])
}
- ctx.Data["Issues"] = issues
+ ctx.Data["Issues"] = showIssues
ctx.Data["IssueCount"] = ctx.Repo.Repository.NumIssues
ctx.Data["OpenCount"] = ctx.Repo.Repository.NumIssues - ctx.Repo.Repository.NumClosedIssues
ctx.Data["ClosedCount"] = ctx.Repo.Repository.NumClosedIssues
@@ -107,7 +113,7 @@ func CreateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat
// Mail watchers.
if base.Service.NotifyMail {
- if err = mailer.SendNotifyMail(ctx.User.Id, ctx.Repo.Repository.Id, ctx.User.Name, ctx.Repo.Repository.Name, issue.Name, issue.Content); err != nil {
+ if err = mailer.SendNotifyMail(ctx.User, ctx.Repo.Owner, ctx.Repo.Repository, issue); err != nil {
ctx.Handle(200, "issue.CreateIssue", err)
return
}
diff --git a/routers/user/user.go b/routers/user/user.go
index 5890983ba1..c008a05cf9 100644
--- a/routers/user/user.go
+++ b/routers/user/user.go
@@ -5,14 +5,14 @@
package user
import (
- "encoding/json"
+ // "encoding/json"
"fmt"
"net/url"
"strings"
- "code.google.com/p/goauth2/oauth"
+ // "code.google.com/p/goauth2/oauth"
"github.com/go-martini/martini"
- "github.com/martini-contrib/oauth2"
+ // "github.com/martini-contrib/oauth2"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/auth"
@@ -78,41 +78,41 @@ func Profile(ctx *middleware.Context, params martini.Params) {
}
// github && google && ...
-func SocialSignIn(tokens oauth2.Tokens) {
- transport := &oauth.Transport{}
- transport.Token = &oauth.Token{
- AccessToken: tokens.Access(),
- RefreshToken: tokens.Refresh(),
- Expiry: tokens.ExpiryTime(),
- Extra: tokens.ExtraData(),
- }
-
- // Github API refer: https://developer.github.com/v3/users/
- // FIXME: need to judge url
- type GithubUser struct {
- Id int `json:"id"`
- Name string `json:"login"`
- Email string `json:"email"`
- }
-
- // Make the request.
- scope := "https://api.github.com/user"
- r, err := transport.Client().Get(scope)
- if err != nil {
- log.Error("connect with github error: %s", err)
- // FIXME: handle error page
- return
- }
- defer r.Body.Close()
-
- user := &GithubUser{}
- err = json.NewDecoder(r.Body).Decode(user)
- if err != nil {
- log.Error("Get: %s", err)
- }
- log.Info("login: %s", user.Name)
- // FIXME: login here, user email to check auth, if not registe, then generate a uniq username
-}
+// func SocialSignIn(tokens oauth2.Tokens) {
+// transport := &oauth.Transport{}
+// transport.Token = &oauth.Token{
+// AccessToken: tokens.Access(),
+// RefreshToken: tokens.Refresh(),
+// Expiry: tokens.ExpiryTime(),
+// Extra: tokens.ExtraData(),
+// }
+
+// // Github API refer: https://developer.github.com/v3/users/
+// // FIXME: need to judge url
+// type GithubUser struct {
+// Id int `json:"id"`
+// Name string `json:"login"`
+// Email string `json:"email"`
+// }
+
+// // Make the request.
+// scope := "https://api.github.com/user"
+// r, err := transport.Client().Get(scope)
+// if err != nil {
+// log.Error("connect with github error: %s", err)
+// // FIXME: handle error page
+// return
+// }
+// defer r.Body.Close()
+
+// user := &GithubUser{}
+// err = json.NewDecoder(r.Body).Decode(user)
+// if err != nil {
+// log.Error("Get: %s", err)
+// }
+// log.Info("login: %s", user.Name)
+// // FIXME: login here, user email to check auth, if not registe, then generate a uniq username
+// }
func SignIn(ctx *middleware.Context, form auth.LogInForm) {
ctx.Data["Title"] = "Log In"
diff --git a/web.go b/web.go
index 48d80b4fed..ececd6c2b3 100644
--- a/web.go
+++ b/web.go
@@ -11,8 +11,8 @@ import (
"github.com/codegangsta/cli"
"github.com/go-martini/martini"
- "github.com/martini-contrib/oauth2"
- "github.com/martini-contrib/sessions"
+ // "github.com/martini-contrib/oauth2"
+ // "github.com/martini-contrib/sessions"
"github.com/gogits/binding"
@@ -60,15 +60,15 @@ func runWeb(*cli.Context) {
// Middlewares.
m.Use(middleware.Renderer(middleware.RenderOptions{Funcs: []template.FuncMap{base.TemplateFuncs}}))
- scope := "https://api.github.com/user"
- oauth2.PathCallback = "/oauth2callback"
- m.Use(sessions.Sessions("my_session", sessions.NewCookieStore([]byte("secret123"))))
- m.Use(oauth2.Github(&oauth2.Options{
- ClientId: "09383403ff2dc16daaa1",
- ClientSecret: "5f6e7101d30b77952aab22b75eadae17551ea6b5",
- RedirectURL: base.AppUrl + oauth2.PathCallback,
- Scopes: []string{scope},
- }))
+ // scope := "https://api.github.com/user"
+ // oauth2.PathCallback = "/oauth2callback"
+ // m.Use(sessions.Sessions("my_session", sessions.NewCookieStore([]byte("secret123"))))
+ // m.Use(oauth2.Github(&oauth2.Options{
+ // ClientId: "09383403ff2dc16daaa1",
+ // ClientSecret: "5f6e7101d30b77952aab22b75eadae17551ea6b5",
+ // RedirectURL: base.AppUrl + oauth2.PathCallback,
+ // Scopes: []string{scope},
+ // }))
m.Use(middleware.InitContext())
@@ -92,7 +92,7 @@ func runWeb(*cli.Context) {
m.Get("/avatar/:hash", avt.ServeHTTP)
m.Group("/user", func(r martini.Router) {
- r.Any("/login/github", user.SocialSignIn)
+ // r.Any("/login/github", user.SocialSignIn)
r.Any("/login", binding.BindIgnErr(auth.LogInForm{}), user.SignIn)
r.Any("/sign_up", binding.BindIgnErr(auth.RegisterForm{}), user.SignUp)
}, reqSignOut)