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

Method Valid

models/member.go:326–379  ·  view source on GitHub ↗

校验用户.

(isHashPassword bool)

Source from the content-addressed store, hash-verified

324
325//校验用户.
326func (m *Member) Valid(isHashPassword bool) error {
327
328 //邮箱不能为空
329 if m.Email == "" {
330 return ErrMemberEmailEmpty
331 }
332 //用户描述必须小于500字
333 if strings.Count(m.Description, "") > 500 {
334 return ErrMemberDescriptionTooLong
335 }
336 if m.Role != conf.MemberGeneralRole && m.Role != conf.MemberSuperRole && m.Role != conf.MemberAdminRole {
337 return ErrMemberRoleError
338 }
339 if m.Status != 0 && m.Status != 1 {
340 m.Status = 0
341 }
342 //邮箱格式校验
343 if ok, err := regexp.MatchString(conf.RegexpEmail, m.Email); !ok || err != nil || m.Email == "" {
344 return ErrMemberEmailFormatError
345 }
346 //如果是未加密密码,需要校验密码格式
347 if !isHashPassword {
348 if l := strings.Count(m.Password, ""); m.Password == "" || l > 50 || l < 6 {
349 return ErrMemberPasswordFormatError
350 }
351 }
352 //校验邮箱是否呗使用
353 if member, err := NewMember().FindByFieldFirst("email", m.Account); err == nil && member.MemberId > 0 {
354 if m.MemberId > 0 && m.MemberId != member.MemberId {
355 return ErrMemberEmailExist
356 }
357 if m.MemberId <= 0 {
358 return ErrMemberEmailExist
359 }
360 }
361
362 if m.MemberId > 0 {
363 //校验用户是否存在
364 if _, err := NewMember().Find(m.MemberId); err != nil {
365 return err
366 }
367 } else {
368 //校验账号格式是否正确
369 if ok, err := regexp.MatchString(conf.RegexpAccount, m.Account); m.Account == "" || !ok || err != nil {
370 return ErrMemberAccountFormatError
371 }
372 //校验账号是否被使用
373 if member, err := NewMember().FindByAccount(m.Account); err == nil && member.MemberId > 0 {
374 return ErrMemberExist
375 }
376 }
377
378 return nil
379}
380
381//删除一个用户.
382

Callers 1

EditMemberMethod · 0.80

Calls 5

NewMemberFunction · 0.85
FindByAccountMethod · 0.80
CountMethod · 0.45
FindByFieldFirstMethod · 0.45
FindMethod · 0.45

Tested by

no test coverage detected