MCPcopy Index your code
hub / github.com/TruthHun/BookStack / Register

Method Register

controllers/api/CommonController.go:227–276  ·  view source on GitHub ↗

【OK】

()

Source from the content-addressed store, hash-verified

225
226// 【OK】
227func (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(&register)
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(&register, &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
278func (this *CommonController) UserFollow() {
279 this.getFansOrFollow(false)

Callers 1

initFunction · 0.80

Calls 9

CheckIPIsAllowedMethod · 0.95
AddMethod · 0.95
InsertMethod · 0.95
loginMethod · 0.95
NewRegLimitFunction · 0.92
GetIPFunction · 0.92
CopyObjectFunction · 0.92
GetDefaultAvatarFunction · 0.92
ResponseMethod · 0.80

Tested by

no test coverage detected