【OK】
()
| 225 | |
| 226 | // 【OK】 |
| 227 | func (this *CommonController) Register() { |
| 228 | rl := models.NewRegLimit() |
| 229 | realIP := utils.GetIP(this.Ctx, rl.RealIPField) |
| 230 | if this.Ctx.Request.Method == http.MethodGet { |
| 231 | this.Response(http.StatusOK, "Register", map[string]interface{}{"IP": realIP, "Request": this.Ctx.Request.Header}) |
| 232 | } |
| 233 | |
| 234 | allowHour, allowDaily := rl.CheckIPIsAllowed(realIP) |
| 235 | if !allowHour { |
| 236 | this.Response(http.StatusBadRequest, fmt.Sprintf("同一IP,每小时只能注册 %v 个账户", rl.HourRegNum)) |
| 237 | } |
| 238 | if !allowDaily { |
| 239 | this.Response(http.StatusBadRequest, fmt.Sprintf("同一IP,每天只能注册 %v 个账户", rl.DailyRegNum)) |
| 240 | } |
| 241 | |
| 242 | var register APIRegister |
| 243 | err := this.ParseForm(®ister) |
| 244 | |
| 245 | if err != nil { |
| 246 | beego.Error(err.Error()) |
| 247 | this.Response(http.StatusBadRequest, messageBadRequest) |
| 248 | } |
| 249 | |
| 250 | if !com.IsEmail(register.Email) { |
| 251 | this.Response(http.StatusBadRequest, messageEmailError) |
| 252 | } |
| 253 | |
| 254 | if register.Account == "" || register.Nickname == "" || register.Password == "" || register.RePassword == "" { |
| 255 | this.Response(http.StatusBadRequest, messageRequiredInput) |
| 256 | } |
| 257 | |
| 258 | if register.Password != register.RePassword { |
| 259 | this.Response(http.StatusBadRequest, messageNotEqualTwicePassword) |
| 260 | } |
| 261 | var member models.Member |
| 262 | |
| 263 | utils.CopyObject(®ister, &member) |
| 264 | |
| 265 | member.Role = conf.MemberGeneralRole |
| 266 | member.Avatar = conf.GetDefaultAvatar() |
| 267 | member.CreateAt = int(time.Now().Unix()) |
| 268 | member.Status = 0 |
| 269 | if err = member.Add(); err != nil { |
| 270 | this.Response(http.StatusBadRequest, err.Error()) |
| 271 | } |
| 272 | if err = rl.Insert(realIP); err != nil { |
| 273 | beego.Error(err.Error()) |
| 274 | } |
| 275 | this.login(member) |
| 276 | } |
| 277 | |
| 278 | func (this *CommonController) UserFollow() { |
| 279 | this.getFansOrFollow(false) |
no test coverage detected