aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gogs.go6
-rw-r--r--models/models.go2
-rw-r--r--models/repo.go3
-rw-r--r--models/user.go20
-rw-r--r--modules/auth/auth.go5
-rw-r--r--routers/repo/single.go8
-rw-r--r--routers/user/user.go20
-rw-r--r--web.go5
8 files changed, 39 insertions, 30 deletions
diff --git a/gogs.go b/gogs.go
index cf097a3a..6865e1f2 100644
--- a/gogs.go
+++ b/gogs.go
@@ -20,19 +20,19 @@ import (
// Test that go1.1 tag above is included in builds. main.go refers to this definition.
const go11tag = true
-const APP_VER = "0.0.5.0311"
+const APP_VER = "0.0.5.0313"
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())
}
func checkRunUser() bool {
- user, err := user.Current()
+ u, err := user.Current()
if err != nil {
// TODO: log
return false
}
- return user.Username == base.Cfg.MustValue("", "RUN_USER")
+ return u.Username == base.Cfg.MustValue("", "RUN_USER")
}
func main() {
diff --git a/models/models.go b/models/models.go
index 413775f5..7c28dc54 100644
--- a/models/models.go
+++ b/models/models.go
@@ -92,7 +92,7 @@ func setEngine() {
func init() {
setEngine()
- err := orm.Sync(new(User), new(PublicKey), new(Repository), new(Access))
+ err := orm.Sync(new(User), new(PublicKey), new(Repository), new(Access), new(Action))
if err != nil {
fmt.Printf("sync database struct error: %s\n", err)
os.Exit(2)
diff --git a/models/repo.go b/models/repo.go
index c790dc90..6387090e 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -137,7 +137,8 @@ func CreateRepository(user *User, repoName, desc, repoLang, license string, priv
}
return nil, err
}
- return repo, nil
+
+ return repo, NewRepoAction(user, repo)
}
// InitRepository initializes README and .gitignore if needed.
diff --git a/models/user.go b/models/user.go
index 8fa2e44e..c59e4ae1 100644
--- a/models/user.go
+++ b/models/user.go
@@ -61,26 +61,6 @@ type Follow struct {
Created time.Time `xorm:"created"`
}
-// Operation types of repository.
-const (
- OP_CREATE_REPO = iota + 1
- OP_DELETE_REPO
- OP_STAR_REPO
- OP_FOLLOW_REPO
- OP_COMMIT_REPO
- OP_PULL_REQUEST
-)
-
-// An Action represents
-type Action struct {
- Id int64
- UserId int64
- OpType int
- RepoId int64
- Content string
- Created time.Time `xorm:"created"`
-}
-
var (
ErrUserOwnRepos = errors.New("User still have ownership of repositories")
ErrUserAlreadyExist = errors.New("User already exist")
diff --git a/modules/auth/auth.go b/modules/auth/auth.go
index b0855275..e4748650 100644
--- a/modules/auth/auth.go
+++ b/modules/auth/auth.go
@@ -90,6 +90,11 @@ func (f *LogInForm) Validate(errors *binding.Errors, req *http.Request, context
validate(errors, data, f)
}
+type FeedsForm struct {
+ UserId int64 `form:"userid" binding:"Required"`
+ Offset int64 `form:"offset"`
+}
+
func getMinMaxSize(field reflect.StructField) string {
for _, rule := range strings.Split(field.Tag.Get("binding"), ";") {
if strings.HasPrefix(rule, "MinSize(") || strings.HasPrefix(rule, "MaxSize(") {
diff --git a/routers/repo/single.go b/routers/repo/single.go
index 02fd3421..db16a84b 100644
--- a/routers/repo/single.go
+++ b/routers/repo/single.go
@@ -2,10 +2,11 @@ package repo
import (
"github.com/codegangsta/martini"
+ "github.com/martini-contrib/render"
+
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/log"
- "github.com/martini-contrib/render"
)
func Single(params martini.Params, r render.Render, data base.TmplData) {
@@ -20,7 +21,10 @@ func Single(params martini.Params, r render.Render, data base.TmplData) {
r.HTML(200, "base/error", data)
return
}
- data["Files"] = files
+
data["IsRepoToolbarSource"] = true
+
+ data["Files"] = files
+
r.HTML(200, "repo/single", data)
}
diff --git a/routers/user/user.go b/routers/user/user.go
index 5017e878..ae9dd902 100644
--- a/routers/user/user.go
+++ b/routers/user/user.go
@@ -5,6 +5,7 @@
package user
import (
+ "bytes"
"net/http"
"github.com/codegangsta/martini"
@@ -140,7 +141,6 @@ func SignUp(form auth.RegisterForm, data base.TmplData, req *http.Request, r ren
r.Redirect("/user/login")
}
-// TODO: unfinished
func Delete(data base.TmplData, req *http.Request, session sessions.Session, r render.Render) {
data["Title"] = "Delete Account"
@@ -166,3 +166,21 @@ func Delete(data base.TmplData, req *http.Request, session sessions.Session, r r
r.HTML(200, "user/delete", data)
}
+
+func Feeds(form auth.FeedsForm, r render.Render) string {
+ actions, err := models.GetFeeds(form.UserId, form.Offset)
+ if err != nil {
+ return err.Error()
+ }
+
+ length := len(actions)
+ buf := bytes.NewBuffer([]byte("["))
+ for i, action := range actions {
+ buf.WriteString(action.Content)
+ if i < length-1 {
+ buf.WriteString(",")
+ }
+ }
+ buf.WriteString("]")
+ return buf.String()
+}
diff --git a/web.go b/web.go
index 9f9b205a..62395cf0 100644
--- a/web.go
+++ b/web.go
@@ -64,19 +64,20 @@ func runWeb(*cli.Context) {
m.Any("/user/logout", auth.SignInRequire(true), user.SignOut)
m.Any("/user/sign_up", auth.SignOutRequire(), binding.BindIgnErr(auth.RegisterForm{}), user.SignUp)
m.Any("/user/delete", auth.SignInRequire(true), user.Delete)
+ m.Get("/user/feeds", binding.Bind(auth.FeedsForm{}), user.Feeds)
m.Any("/user/setting", auth.SignInRequire(true), user.Setting)
m.Any("/user/setting/ssh", auth.SignInRequire(true), binding.BindIgnErr(auth.AddSSHKeyForm{}), user.SettingSSHKeys)
m.Get("/user/:username", auth.SignInRequire(false), user.Profile)
- //m.Get("/:username/:reponame", repo.Repo)
-
m.Any("/repo/create", auth.SignInRequire(true), binding.BindIgnErr(auth.CreateRepoForm{}), repo.Create)
m.Any("/repo/delete", auth.SignInRequire(true), repo.Delete)
m.Any("/repo/list", auth.SignInRequire(false), repo.List)
m.Get("/:username/:reponame", auth.SignInRequire(false), auth.RepoAssignment(true), repo.Single)
+ //m.Get("/:username/:reponame", repo.Repo)
+
listenAddr := fmt.Sprintf("%s:%s",
base.Cfg.MustValue("server", "HTTP_ADDR"),
base.Cfg.MustValue("server", "HTTP_PORT", "3000"))