fix: restore verification target user ids
This commit is contained in:
@@ -5466,8 +5466,8 @@ func (a *adapter) TenantVerificationGet(id t.TenantID, challengeID string) (*t.V
|
||||
if cancel != nil {
|
||||
defer cancel()
|
||||
}
|
||||
var vc t.VerificationCode
|
||||
err := a.db.GetContext(ctx, &vc,
|
||||
var row verificationCodeRow
|
||||
err := a.db.GetContext(ctx, &row,
|
||||
`SELECT id,challenge_id,scene,action,phone_hash,phone_mask,IFNULL(target_user,0) AS target_user,code_hash,verification_token_hash,
|
||||
state,attempts,max_attempts,expires_at,resend_after,verified_at,consumed_at,created_at,updated_at
|
||||
FROM im_verification_codes
|
||||
@@ -5478,8 +5478,7 @@ func (a *adapter) TenantVerificationGet(id t.TenantID, challengeID string) (*t.V
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
vc.TenantID = id
|
||||
return &vc, nil
|
||||
return row.toVerificationCode(id), nil
|
||||
}
|
||||
|
||||
func (a *adapter) TenantVerificationGetActive(id t.TenantID, scene, phoneHash string, now time.Time) (*t.VerificationCode, error) {
|
||||
@@ -5499,8 +5498,8 @@ func (a *adapter) TenantVerificationGetActive(id t.TenantID, scene, phoneHash st
|
||||
if cancel != nil {
|
||||
defer cancel()
|
||||
}
|
||||
var vc t.VerificationCode
|
||||
err := a.db.GetContext(ctx, &vc,
|
||||
var row verificationCodeRow
|
||||
err := a.db.GetContext(ctx, &row,
|
||||
`SELECT id,challenge_id,scene,action,phone_hash,phone_mask,IFNULL(target_user,0) AS target_user,code_hash,verification_token_hash,
|
||||
state,attempts,max_attempts,expires_at,resend_after,verified_at,consumed_at,created_at,updated_at
|
||||
FROM im_verification_codes
|
||||
@@ -5512,8 +5511,55 @@ func (a *adapter) TenantVerificationGetActive(id t.TenantID, scene, phoneHash st
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
vc.TenantID = id
|
||||
return &vc, nil
|
||||
return row.toVerificationCode(id), nil
|
||||
}
|
||||
|
||||
type verificationCodeRow struct {
|
||||
ID int64 `db:"id"`
|
||||
ChallengeID string `db:"challenge_id"`
|
||||
Scene string `db:"scene"`
|
||||
Action string `db:"action"`
|
||||
PhoneHash string `db:"phone_hash"`
|
||||
PhoneMask string `db:"phone_mask"`
|
||||
TargetUser int64 `db:"target_user"`
|
||||
CodeHash string `db:"code_hash"`
|
||||
VerificationTokenHash *string `db:"verification_token_hash"`
|
||||
State t.VerificationState `db:"state"`
|
||||
Attempts int `db:"attempts"`
|
||||
MaxAttempts int `db:"max_attempts"`
|
||||
ExpiresAt time.Time `db:"expires_at"`
|
||||
ResendAfter time.Time `db:"resend_after"`
|
||||
VerifiedAt *time.Time `db:"verified_at"`
|
||||
ConsumedAt *time.Time `db:"consumed_at"`
|
||||
CreatedAt time.Time `db:"created_at"`
|
||||
UpdatedAt time.Time `db:"updated_at"`
|
||||
}
|
||||
|
||||
func (r verificationCodeRow) toVerificationCode(tenantID t.TenantID) *t.VerificationCode {
|
||||
vc := &t.VerificationCode{
|
||||
ID: r.ID,
|
||||
TenantID: tenantID,
|
||||
ChallengeID: r.ChallengeID,
|
||||
Scene: r.Scene,
|
||||
Action: r.Action,
|
||||
PhoneHash: r.PhoneHash,
|
||||
PhoneMask: r.PhoneMask,
|
||||
CodeHash: r.CodeHash,
|
||||
VerificationTokenHash: r.VerificationTokenHash,
|
||||
State: r.State,
|
||||
Attempts: r.Attempts,
|
||||
MaxAttempts: r.MaxAttempts,
|
||||
ExpiresAt: r.ExpiresAt,
|
||||
ResendAfter: r.ResendAfter,
|
||||
VerifiedAt: r.VerifiedAt,
|
||||
ConsumedAt: r.ConsumedAt,
|
||||
CreatedAt: r.CreatedAt,
|
||||
UpdatedAt: r.UpdatedAt,
|
||||
}
|
||||
if r.TargetUser > 0 {
|
||||
vc.TargetUser = store.EncodeUid(r.TargetUser)
|
||||
}
|
||||
return vc
|
||||
}
|
||||
|
||||
func (a *adapter) TenantVerificationFail(id t.TenantID, challengeID string, state t.VerificationState) error {
|
||||
|
||||
Reference in New Issue
Block a user