front.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package front
  2. import (
  3. qu "qfw/util"
  4. . "../util"
  5. "github.com/go-xweb/xweb"
  6. "gopkg.in/mgo.v2/bson"
  7. )
  8. type Front struct {
  9. *xweb.Action
  10. homepage xweb.Mapper `xweb:"/"` //登录页面
  11. login xweb.Mapper `xweb:"/front/login"` //登录
  12. index xweb.Mapper `xweb:"/front/index"` //index页面
  13. logout xweb.Mapper `xweb:"/front/logout"` //注销
  14. updatepwd xweb.Mapper `xweb:"/front/updatepwd"` //注销
  15. }
  16. func (f *Front) Homepage() {
  17. f.Render("login.html")
  18. }
  19. func (f *Front) Login() {
  20. email := f.GetString("email")
  21. password := f.GetString("pwd")
  22. //f.SetSession("password", password)
  23. passwordEn := qu.SE.EncodeString(password)
  24. query := bson.M{
  25. "s_email": email,
  26. "s_pwd": passwordEn,
  27. }
  28. user, _ := Mgo.FindOne("user", query)
  29. checked := false
  30. if (*user) != nil {
  31. checked = true
  32. f.SetSession("user", map[string]interface{}{
  33. "name": (*user)["s_name"],
  34. "role": (*user)["s_role"],
  35. "pwd": password,
  36. "email": email,
  37. "id": qu.BsonIdToSId((*user)["_id"]),
  38. })
  39. }
  40. f.ServeJson(map[string]interface{}{
  41. "checked": checked,
  42. })
  43. }
  44. func (f *Front) Index() {
  45. f.Render("index.html")
  46. }
  47. func (f *Front) Logout() {
  48. f.DelSession("user")
  49. f.Render("login.html")
  50. }
  51. func (f *Front) Updatepwd() {
  52. id := f.GetString("id")
  53. password := f.GetString("pwd")
  54. set := bson.M{
  55. "$set": bson.M{
  56. "s_pwd": qu.SE.EncodeString(password),
  57. },
  58. }
  59. if Mgo.UpdateById("user", id, set) {
  60. sessionuser := f.GetSession("user").(map[string]interface{})
  61. sessionuser["pwd"] = password
  62. f.SetSession("user", sessionuser)
  63. }
  64. }