engine.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package main
  2. import (
  3. "database/sql"
  4. "net/http"
  5. "strings"
  6. //_ "github.com/go-sql-driver/mysql"
  7. "golang-fave/engine/wrapper"
  8. templates "golang-fave/engine/wrapper/resources/templates"
  9. utils "golang-fave/engine/wrapper/utils"
  10. )
  11. func handlerPage(wrapper *wrapper.Wrapper) bool {
  12. mysql_conf_exists := utils.IsMySqlConfigExists(wrapper.DirVHostHome)
  13. is_front_end := true
  14. if wrapper.R.URL.Path == "/cp" || strings.HasPrefix(wrapper.R.URL.Path, "/cp/") {
  15. is_front_end = false
  16. }
  17. if is_front_end {
  18. // Front-end
  19. if !mysql_conf_exists {
  20. (*wrapper.W).Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
  21. http.Redirect(*wrapper.W, wrapper.R, wrapper.R.URL.Scheme+"://"+wrapper.R.Host+"/cp/", 302)
  22. return true
  23. }
  24. } else {
  25. // Back-end
  26. if !mysql_conf_exists {
  27. return wrapper.TmplBackEnd(templates.CpMySQL, nil)
  28. }
  29. }
  30. // Connect to database or show error
  31. mc, err := utils.MySqlConfigRead(wrapper.DirVHostHome)
  32. if wrapper.EngineErrMsgOnError(err) {
  33. return true
  34. }
  35. db, err := sql.Open("mysql", mc.User+":"+mc.Password+"@tcp("+mc.Host+":"+mc.Port+")/"+mc.Name)
  36. if wrapper.EngineErrMsgOnError(err) {
  37. return true
  38. }
  39. defer db.Close()
  40. err = db.Ping()
  41. if wrapper.EngineErrMsgOnError(err) {
  42. return true
  43. }
  44. //
  45. // Redirect to CP, if MySQL config file is not exists
  46. /*
  47. if !utils.IsMySqlConfigExists(wrapper.DirVHostHome) {
  48. if !(wrapper.R.URL.Path == "/cp" || wrapper.R.URL.Path == "/cp/") {
  49. (*wrapper.W).Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
  50. http.Redirect(*wrapper.W, wrapper.R, wrapper.R.URL.Scheme+"://"+wrapper.R.Host+"/cp/", 302)
  51. return true
  52. }
  53. }
  54. */
  55. /*
  56. if !(wrapper.R.URL.Path == "/cp" || strings.HasPrefix(wrapper.R.URL.Path, "/cp/")) {
  57. return handlerFrontEnd(wrapper)
  58. } else {
  59. return handlerBackEnd(wrapper)
  60. }
  61. */
  62. return false
  63. }
  64. // func handlerFrontEnd(wrapper *wrapper.Wrapper) bool {
  65. // // Redirect to CP, if MySQL config file is not exists
  66. // /*
  67. // if !utils.IsMySqlConfigExists(wrapper.DirVHostHome) {
  68. // (*wrapper.W).Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
  69. // http.Redirect(*wrapper.W, wrapper.R, wrapper.R.URL.Scheme+"://"+wrapper.R.Host+"/cp/", 302)
  70. // return true
  71. // }
  72. // */
  73. // // Connect to database
  74. // // Else logic here
  75. // if wrapper.R.URL.Path == "/" {
  76. // return wrapper.TmplFrontEnd("index", nil)
  77. // }
  78. // return false
  79. // }
  80. // func handlerBackEnd(wrapper *wrapper.Wrapper) bool {
  81. // // MySQL config page
  82. // if !utils.IsMySqlConfigExists(wrapper.DirVHostHome) {
  83. // return wrapper.TmplBackEnd(templates.CpMySQL, nil)
  84. // }
  85. // // Connect to database
  86. // mc, err := utils.MySqlConfigRead(wrapper.DirVHostHome)
  87. // if wrapper.EngineErrMsgOnError(err) {
  88. // return true
  89. // }
  90. // db, err := sql.Open("mysql", mc.User+":"+mc.Password+"@tcp("+mc.Host+":"+mc.Port+")/"+mc.Name)
  91. // if wrapper.EngineErrMsgOnError(err) {
  92. // return true
  93. // }
  94. // defer db.Close()
  95. // err = db.Ping()
  96. // if wrapper.EngineErrMsgOnError(err) {
  97. // return true
  98. // }
  99. // // Check if any user exists
  100. // // Login page
  101. // return wrapper.TmplBackEnd(templates.CpLogin, nil)
  102. // }