user.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. // Copyright 2014 The Gogs Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package user
  5. import (
  6. "fmt"
  7. "net/http"
  8. "github.com/martini-contrib/render"
  9. "github.com/gogits/validation"
  10. "github.com/gogits/gogs/models"
  11. "github.com/gogits/gogs/utils/log"
  12. )
  13. func Profile(r render.Render) {
  14. r.HTML(200, "user/profile", map[string]interface{}{
  15. "Title": "Username",
  16. })
  17. return
  18. }
  19. func SignIn(req *http.Request, r render.Render) {
  20. if req.Method == "GET" {
  21. r.HTML(200, "user/signin", map[string]interface{}{
  22. "Title": "Log In",
  23. })
  24. return
  25. }
  26. // todo sign in
  27. _, err := models.LoginUserPlain(req.FormValue("account"), req.FormValue("passwd"))
  28. if err != nil {
  29. r.HTML(200, "base/error", map[string]interface{}{
  30. "Error": fmt.Sprintf("%v", err),
  31. })
  32. return
  33. }
  34. r.Redirect("/")
  35. }
  36. func SignUp(req *http.Request, r render.Render) {
  37. if req.Method == "GET" {
  38. r.HTML(200, "user/signup", map[string]interface{}{
  39. "Title": "Sign Up",
  40. })
  41. return
  42. }
  43. u := &models.User{
  44. Name: req.FormValue("username"),
  45. Email: req.FormValue("email"),
  46. Passwd: req.FormValue("passwd"),
  47. }
  48. valid := validation.Validation{}
  49. ok, err := valid.Valid(u)
  50. if err != nil {
  51. log.Error("user.SignUp -> valid user: %v", err)
  52. return
  53. }
  54. if !ok {
  55. for _, err := range valid.Errors {
  56. log.Warn("user.SignUp -> valid user: %v", err)
  57. }
  58. return
  59. }
  60. err = models.RegisterUser(u)
  61. if err != nil {
  62. if err != nil {
  63. r.HTML(200, "base/error", map[string]interface{}{
  64. "Error": fmt.Sprintf("%v", err),
  65. })
  66. return
  67. }
  68. }
  69. r.Redirect("/")
  70. }
  71. func Delete(req *http.Request, r render.Render) {
  72. if req.Method == "GET" {
  73. r.HTML(200, "user/delete", map[string]interface{}{
  74. "Title": "Delete user",
  75. })
  76. return
  77. }
  78. u := &models.User{}
  79. err := models.DeleteUser(u)
  80. r.HTML(403, "status/403", map[string]interface{}{
  81. "Title": fmt.Sprintf("%v", err),
  82. })
  83. }