single.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package repo
  2. import (
  3. "net/http"
  4. "github.com/codegangsta/martini"
  5. "github.com/martini-contrib/render"
  6. "github.com/martini-contrib/sessions"
  7. "github.com/gogits/gogs/models"
  8. "github.com/gogits/gogs/modules/auth"
  9. "github.com/gogits/gogs/modules/base"
  10. "github.com/gogits/gogs/modules/log"
  11. )
  12. func Single(params martini.Params, req *http.Request, r render.Render, data base.TmplData, session sessions.Session) {
  13. var (
  14. user *models.User
  15. err error
  16. )
  17. // get repository owner
  18. isOwner := (data["SignedUserName"] == params["username"])
  19. if !isOwner {
  20. user, err = models.GetUserByName(params["username"])
  21. if err != nil {
  22. data["ErrorMsg"] = err
  23. //log.Error("repo.Single: %v", err)
  24. r.HTML(200, "base/error", data)
  25. return
  26. }
  27. } else {
  28. user = auth.SignedInUser(session)
  29. }
  30. if user == nil {
  31. data["ErrorMsg"] = "invliad user account for single repository"
  32. //log.Error("repo.Single: %v", err)
  33. r.HTML(200, "base/error", data)
  34. return
  35. }
  36. data["IsRepositoryOwner"] = isOwner
  37. // get repository
  38. repo, err := models.GetRepositoryByName(user, params["reponame"])
  39. if err != nil {
  40. data["ErrorMsg"] = err
  41. //log.Error("repo.Single: %v", err)
  42. r.HTML(200, "base/error", data)
  43. return
  44. }
  45. data["Repository"] = repo
  46. data["Owner"] = user
  47. data["Title"] = user.Name + "/" + repo.Name
  48. data["RepositoryLink"] = data["Title"]
  49. data["IsRepoToolbarSource"] = true
  50. files, err := models.GetReposFiles(params["username"], params["reponame"], "HEAD", "/")
  51. if err != nil {
  52. data["ErrorMsg"] = err
  53. log.Error("repo.List: %v", err)
  54. r.HTML(200, "base/error", data)
  55. return
  56. }
  57. data["Files"] = files
  58. r.HTML(200, "repo/single", data)
  59. }