github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/routers/root/RCreateAdministrator.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 GetRCreateRootHandler(self *makross.Context) error { 13 self.Set("catpage", "RCreateAdministrator") 14 TplNames := "root/create_administrator" 15 return self.Render(TplNames) 16 17 } 18 19 func PostRCreateRootHandler(self *makross.Context) error { 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/administrator/") 36 } else if password != repassword { 37 self.Flash.Error("密码前后不一致,请确认你输入的密码正确无误!") 38 return self.Redirect("/root/create/administrator/") 39 } 40 } else { 41 42 self.Flash.Error("密码为空!") 43 return self.Redirect("/root/create/administrator/") 44 } 45 46 if len(username) <= 0 { 47 self.Flash.Error("用户名是为永久性设定,不能少于4个字或多于30个字,请慎重考虑,不能为空!") 48 return self.Redirect("/root/create/administrator/") 49 } 50 51 if len(email) > 0 { 52 if helper.CheckEmail(email) == false { 53 self.Flash.Error("邮箱格式错误!") 54 return self.Redirect("/root/create/administrator/") 55 } 56 57 } else { 58 if helper.CheckEmail(username) == true { 59 email = username 60 } else if helper.CheckUsername(username) == false { 61 self.Flash.Error("用户名是为永久性设定,不能少于4个字或多于30个字,请慎重考虑,不能为空!") 62 return self.Redirect("/root/create/administrator/") 63 } 64 65 } 66 67 if len(email) > 0 { 68 if usrinfo, err := models.GetUserByEmail(email); (usrinfo != nil) && (err == nil) { 69 70 if usrinfo, err := models.GetUserByUsername(username); usrinfo != nil { 71 self.Flash.Error("此用户名不能使用!") 72 return self.Redirect("/root/create/administrator/") 73 74 } else if err != nil { 75 76 self.Flash.Error("检索用户名账号期间出错!") 77 return self.Redirect("/root/create/administrator/") 78 79 } 80 81 self.Flash.Error("此Email不能使用!") 82 return self.Redirect("/root/create/administrator/") 83 84 } else if !((usrinfo == nil) && (err == nil)) { 85 self.Flash.Error("检索EMAIL账号期间出错!") 86 return self.Redirect("/root/create/administrator/") 87 88 } 89 } else { 90 if usrinfo, err := models.GetUserByUsername(username); usrinfo != nil { 91 92 self.Flash.Error("此用户名已经被注册,请重新命名!") 93 return self.Redirect("/root/create/administrator/") 94 95 } else if err != nil { 96 97 self.Flash.Error("检索账号数据期间出错!") 98 return self.Redirect("/root/create/administrator/") 99 100 } 101 } 102 103 if usrid, err := models.AddUser(email, username, nickname, "", helper.EncryptHash(password, nil), group, content, mobile, gender, -1000); err != nil || usrid <= 0 { 104 self.Flash.Error(fmt.Sprintf("用户注册信息写入数据库时发生错误:%v", err)) 105 return self.Redirect("/root/create/administrator/") 106 107 } else { 108 109 if usrinfo, err := models.GetUser(usrid); err == nil && usrinfo != nil { 110 self.Flash.Success("添加用户账号保存成功!") 111 return self.Redirect("/root/read/administrator/" + strconv.FormatInt(usrid, 10) + "/") 112 113 } else { 114 115 self.Flash.Error("获取用户数据出错!") 116 return self.Redirect("/root/create/administrator/") 117 118 } 119 120 } 121 122 }