@@ -3052,12 +3052,12 @@ func manageAuthCache() {
3052
3052
// The email address may contain a catchall separator.
3053
3053
// For invalid credentials, a nil account is returned, but accName may be
3054
3054
// non-empty.
3055
- func OpenEmailAuth (log mlog.Log , email string , password string , checkLoginDisabled bool ) (acc * Account , accName string , rerr error ) {
3055
+ func OpenEmailAuth (log mlog.Log , email string , password string , checkLoginDisabled bool ) (racc * Account , raccName string , rerr error ) {
3056
3056
// We check for LoginDisabled after verifying the password. Otherwise users can get
3057
3057
// messages about the account being disabled without knowing the password.
3058
- acc , accName , _ , rerr = OpenEmail (log , email , false )
3059
- if rerr != nil {
3060
- return
3058
+ acc , accName , _ , err : = OpenEmail (log , email , false )
3059
+ if err != nil {
3060
+ return nil , "" , err
3061
3061
}
3062
3062
3063
3063
defer func () {
@@ -3068,38 +3068,38 @@ func OpenEmailAuth(log mlog.Log, email string, password string, checkLoginDisabl
3068
3068
}
3069
3069
}()
3070
3070
3071
- password , err : = precis .OpaqueString .String (password )
3071
+ password , err = precis .OpaqueString .String (password )
3072
3072
if err != nil {
3073
- return nil , accName , ErrUnknownCredentials
3073
+ return nil , "" , ErrUnknownCredentials
3074
3074
}
3075
3075
3076
3076
pw , err := bstore .QueryDB [Password ](context .TODO (), acc .DB ).Get ()
3077
3077
if err != nil {
3078
3078
if err == bstore .ErrAbsent {
3079
- return acc , accName , ErrUnknownCredentials
3079
+ return nil , "" , ErrUnknownCredentials
3080
3080
}
3081
- return acc , accName , fmt .Errorf ("looking up password: %v" , err )
3081
+ return nil , "" , fmt .Errorf ("looking up password: %v" , err )
3082
3082
}
3083
3083
authCache .Lock ()
3084
3084
ok := len (password ) >= 8 && authCache .success [authKey {email , pw .Hash }] == password
3085
3085
authCache .Unlock ()
3086
3086
if ! ok {
3087
3087
if err := bcrypt .CompareHashAndPassword ([]byte (pw .Hash ), []byte (password )); err != nil {
3088
- return acc , accName , ErrUnknownCredentials
3088
+ return nil , "" , ErrUnknownCredentials
3089
3089
}
3090
3090
}
3091
3091
if checkLoginDisabled {
3092
3092
conf , aok := acc .Conf ()
3093
3093
if ! aok {
3094
- return acc , accName , fmt .Errorf ("cannot find config for account" )
3094
+ return nil , "" , fmt .Errorf ("cannot find config for account" )
3095
3095
} else if conf .LoginDisabled != "" {
3096
- return acc , accName , fmt .Errorf ("%w: %s" , ErrLoginDisabled , conf .LoginDisabled )
3096
+ return nil , "" , fmt .Errorf ("%w: %s" , ErrLoginDisabled , conf .LoginDisabled )
3097
3097
}
3098
3098
}
3099
3099
authCache .Lock ()
3100
3100
authCache .success [authKey {email , pw .Hash }] = password
3101
3101
authCache .Unlock ()
3102
- return
3102
+ return acc , accName , nil
3103
3103
}
3104
3104
3105
3105
// OpenEmail opens an account given an email address.
0 commit comments