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