aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--models/repo.go4
-rw-r--r--models/user.go6
-rw-r--r--routers/user/user.go13
-rw-r--r--templates/user/dashboard.tmpl6
4 files changed, 24 insertions, 5 deletions
diff --git a/models/repo.go b/models/repo.go
index ed828a34..d4f30455 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -223,6 +223,10 @@ func GetRepositories(user *User) ([]Repository, error) {
return repos, err
}
+func GetRepositoryCount(user *User) (int64, error) {
+ return orm.Count(&Repository{OwnerId: user.Id})
+}
+
func StarReposiory(user *User, repoName string) error {
return nil
}
diff --git a/models/user.go b/models/user.go
index d904304f..95cebb18 100644
--- a/models/user.go
+++ b/models/user.go
@@ -142,13 +142,15 @@ func UpdateUser(user *User) (err error) {
// DeleteUser completely deletes everything of the user.
func DeleteUser(user *User) error {
- repos, err := GetRepositories(user)
+ cnt, err := GetRepositoryCount(user)
if err != nil {
return errors.New("modesl.GetRepositories: " + err.Error())
- } else if len(repos) > 0 {
+ } else if cnt > 0 {
return ErrUserOwnRepos
}
+ // TODO: check issues, other repos' commits
+
_, err = orm.Delete(user)
// TODO: delete and update follower information.
return err
diff --git a/routers/user/user.go b/routers/user/user.go
index ca9dddae..7a58ba57 100644
--- a/routers/user/user.go
+++ b/routers/user/user.go
@@ -20,6 +20,14 @@ import (
func Dashboard(r render.Render, data base.TmplData, session sessions.Session) {
data["Title"] = "Dashboard"
data["PageIsUserDashboard"] = true
+ repos, err := models.GetRepositories(&models.User{Id: auth.SignedInId(session)})
+ if err != nil {
+ data["ErrorMsg"] = err
+ log.Error("dashboard: %v", err)
+ r.HTML(200, "base/error", data)
+ return
+ }
+ data["MyRepos"] = repos
r.HTML(200, "user/dashboard", data)
}
@@ -133,7 +141,7 @@ func SignUp(form auth.RegisterForm, data base.TmplData, req *http.Request, r ren
}
// TODO: unfinished
-func Delete(data base.TmplData, req *http.Request, r render.Render) {
+func Delete(data base.TmplData, req *http.Request, session sessions.Session, r render.Render) {
data["Title"] = "Delete Account"
if req.Method == "GET" {
@@ -141,7 +149,8 @@ func Delete(data base.TmplData, req *http.Request, r render.Render) {
return
}
- u := &models.User{}
+ id := auth.SignedInId(session)
+ u := &models.User{Id: id}
err := models.DeleteUser(u)
data["ErrorMsg"] = err
log.Error("user.Delete: %v", data)
diff --git a/templates/user/dashboard.tmpl b/templates/user/dashboard.tmpl
index 18433c7b..b58f4063 100644
--- a/templates/user/dashboard.tmpl
+++ b/templates/user/dashboard.tmpl
@@ -21,7 +21,11 @@
<a class="btn btn-success pull-right btn-sm" href="/repo/create/"><i class="fa fa-plus-square"></i>New Repo</a>
</div>
<div class="panel-body">
- repo-list
+ <ul>
+ {{range .MyRepos}}
+ <li><a href="#">{{.Name}}</a></li>
+ {{end}}
+ </ul>
</div>
</div>
</div>