package front import ( qu "qfw/util" "time" . "../util" "github.com/go-xweb/xweb" "gopkg.in/mgo.v2/bson" ) type Front struct { *xweb.Action login xweb.Mapper `xweb:"/"` //登录页面 index xweb.Mapper `xweb:"/front/index"` //index页面 logout xweb.Mapper `xweb:"/front/logout"` //注销 updatePwd xweb.Mapper `xweb:"/front/updatepwd"` //更新密码 //user user xweb.Mapper `xweb:"/front/user"` //查所有用户 userDel xweb.Mapper `xweb:"/front/user/del"` //删除用户 userSave xweb.Mapper `xweb:"/front/user/save"` //保存用户 //menu menu xweb.Mapper `xweb:"/front/menu"` //查一级菜单 menuSave xweb.Mapper `xweb:"/front/menu/save"` //保存一级菜单 menuDel xweb.Mapper `xweb:"/front/menu/del"` //删除一级菜单 menuSecond xweb.Mapper `xweb:"/front/menuSecond"` //查二级菜单 menuSecondSave xweb.Mapper `xweb:"/front/menuSecond/save"` //保存二级菜单 menuSecondDel xweb.Mapper `xweb:"/front/menuSecond/del"` //删除二级菜单 } func (f *Front) Login() { defer qu.Catch() if f.Method() == "POST" { email := f.GetString("email") password := f.GetString("pwd") //f.SetSession("password", password) passwordEn := qu.SE.EncodeString(password) query := bson.M{ "s_email": email, "s_pwd": passwordEn, } user, _ := Mgo.FindOne("user", query) checked := false if (*user) != nil { checked = true f.SetSession("user", map[string]interface{}{ "name": (*user)["s_name"], "role": (*user)["s_role"], "pwd": password, "email": email, "id": qu.BsonIdToSId((*user)["_id"]), }) } f.ServeJson(map[string]interface{}{ "checked": checked, }) } else { f.Render("login.html") } } func (f *Front) Index() { defer qu.Catch() f.Render("index.html") } func (f *Front) Logout() { f.DelSession("user") f.Redirect("/") } func (f *Front) UpdatePwd() { defer qu.Catch() id := f.GetString("id") password := f.GetString("pwd") set := bson.M{ "$set": bson.M{ "s_pwd": qu.SE.EncodeString(password), }, } if Mgo.UpdateById("user", id, set) { sessionuser := f.GetSession("user").(map[string]interface{}) sessionuser["pwd"] = password f.SetSession("user", sessionuser) } } func (f *Front) User() { defer qu.Catch() if f.Method() == "POST" { data, _ := Mgo.Find("user", nil, `{"_id":1}`, nil, false, -1, -1) for _, d := range *data { d["s_pwd"] = qu.SE.DecodeString(qu.ObjToString(d["s_pwd"])) } f.ServeJson(map[string]interface{}{ "data": data, }) } else { f.Render("com/user.html") } } func (f *Front) UserDel() { defer qu.Catch() _id := f.GetString("_id") query := bson.M{ "_id": qu.StringTOBsonId(_id), } b := Mgo.Del("user", query) f.ServeJson(map[string]interface{}{ "rep": b, }) } func (f *Front) UserSave() { _id := f.GetString("_id") role := f.GetString("role") name := f.GetString("name") email := f.GetString("email") pwd := f.GetString("pwd") set := bson.M{ "$set": bson.M{ "s_role": role, "s_name": name, "s_email": email, "s_pwd": qu.SE.EncodeString(pwd), "i_comeintime": time.Now().Unix(), }, } query := bson.M{ "_id": qu.StringTOBsonId(_id), } if _id == "" { query = bson.M{ "_id": bson.NewObjectId(), } } b := Mgo.Update("user", query, set, true, false) //b := Mgo.UpdateById("user", _id, set) f.ServeJson(map[string]interface{}{ "rep": b, }) }