校验用户.
(isHashPassword bool)
| 324 | |
| 325 | //校验用户. |
| 326 | func (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 |
no test coverage detected