github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/routers/root/RUpdateAdministrator.go (about) 1 package root 2 3 import ( 4 "github.com/insionng/makross" 5 6 "strconv" 7 "github.com/insionng/yougam/helper" 8 "github.com/insionng/yougam/models" 9 ) 10 11 func GetRUpdateRootHandler(self *makross.Context) error { 12 self.Set("catpage", "RUpdateAdministratorHandler") 13 TplNames := "root/update_user" 14 15 if userid := self.Param("uid").MustInt64(); userid > 0 { 16 if usrinfo, err := models.GetUser(userid); err == nil && usrinfo != nil { 17 self.Set("usr", usrinfo) 18 } 19 return self.Render(TplNames) 20 21 } else { 22 return self.Redirect("/root/read/administrator/") 23 } 24 25 } 26 27 func PostRUpdateRootHandler(self *makross.Context) error { 28 29 30 self.Set("catpage", "RUpdateAdministratorHandler") 31 32 if userid := self.Param("uid").MustInt64(); userid > 0 { 33 username := self.FormValue("username") 34 nickname := self.FormValue("nickname") 35 password := self.FormValue("password") 36 repassword := self.FormValue("repassword") 37 content := self.FormValue("content") 38 mobile := self.FormValue("mobile") 39 email := self.FormValue("email") 40 group := self.FormValue("group") 41 gender := self.Args("gender").MustInt64() 42 43 if len(password) > 0 { 44 if helper.CheckPassword(password) == false { 45 self.Flash.Error("密码含有非法字符或密码过短(至少4~30位密码)!") 46 return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/") 47 48 } else if password != repassword { 49 50 self.Flash.Error("密码前后不一致,请确认你输入的密码正确无误!") 51 return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/") 52 53 } 54 } else { 55 56 self.Flash.Error("密码为空!") 57 return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/") 58 59 } 60 61 if username == "" { 62 self.Flash.Error("用户名是为永久性设定,不能少于4个字或多于30个字,请慎重考虑,不能为空!") 63 return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/") 64 65 } 66 67 if email != "" { 68 if helper.CheckEmail(email) == false { 69 self.Flash.Error("邮箱格式错误!") 70 return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/") 71 72 } 73 74 } else { 75 if helper.CheckEmail(username) == true { 76 email = username 77 } else if helper.CheckUsername(username) == false { 78 self.Flash.Error("用户名是为永久性设定,不能少于4个字或多于30个字,请慎重考虑,不能为空!") 79 return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/") 80 81 } 82 83 } 84 85 usr, _ := models.GetUser(userid) 86 //usr.Id = userid 87 usr.Email = email 88 usr.Username = username 89 usr.Nickname = nickname 90 usr.Password = helper.EncryptHash(password, nil) 91 usr.Group = group 92 usr.Content = content 93 usr.Mobile = mobile 94 usr.Gender = gender 95 usr.Role = -1000 96 97 if row, err := models.PutUser(userid, usr); err != nil && row <= 0 { 98 99 self.Flash.Error("用户注册信息写入数据库时发生错误!") 100 return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/") 101 102 } else { 103 104 if usrinfo, err := models.GetUser(userid); err == nil && usrinfo != nil { 105 self.Set("usr", usrinfo) 106 self.Flash.Success("用户账号保存成功!") 107 return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/") 108 109 } else { 110 111 self.Flash.Error("获取用户数据出错!") 112 return self.Redirect("/root/read/administrator/") 113 114 } 115 116 } 117 } else { 118 119 self.Flash.Error("用户不存在!") 120 return self.Redirect("/root/read/administrator/") 121 } 122 }