jc/exp/srcgraph-external-service
unknwon 2019-08-19 07:48:43 +08:00
parent ad927c5950
commit f1a4b8683b
1 changed files with 9 additions and 8 deletions

View File

@ -5,10 +5,11 @@
package srcgraph package srcgraph
import ( import (
"github.com/Unknwon/com"
"net/http" "net/http"
"time" "time"
"github.com/Unknwon/com"
adapter "github.com/sourcegraph/external-service-adapter" adapter "github.com/sourcegraph/external-service-adapter"
log "gopkg.in/clog.v1" log "gopkg.in/clog.v1"
@ -137,12 +138,12 @@ func (es externalServicer) listUserRepos(username string, ai adapter.AuthInfo, p
} }
func userFromAuthInfo(ai adapter.AuthInfo) (*models.User, error) { func userFromAuthInfo(ai adapter.AuthInfo) (*models.User, error) {
u, err := models.UserLogin(ai.Username, ai.Password, -1) if ai.Method == adapter.AuthBasic {
if err != nil && !errors.IsUserNotExist(err) { u, err := models.UserLogin(ai.Username, ai.Password, -1)
return nil, err if err != nil {
} return nil, err
}
if u != nil {
if u.IsEnabledTwoFactor() { if u.IsEnabledTwoFactor() {
return nil, errors.New( return nil, errors.New(
"User with two-factor authentication enabled cannot perform HTTP/HTTPS operations via plain username and password." + "User with two-factor authentication enabled cannot perform HTTP/HTTPS operations via plain username and password." +
@ -151,7 +152,7 @@ func userFromAuthInfo(ai adapter.AuthInfo) (*models.User, error) {
return u, nil return u, nil
} }
t, err := models.GetAccessTokenBySHA(ai.Username) t, err := models.GetAccessTokenBySHA(ai.Token)
if err != nil { if err != nil {
if models.IsErrAccessTokenEmpty(err) || models.IsErrAccessTokenNotExist(err) { if models.IsErrAccessTokenEmpty(err) || models.IsErrAccessTokenNotExist(err) {
return nil, errors.UserNotExist{} return nil, errors.UserNotExist{}
@ -160,7 +161,7 @@ func userFromAuthInfo(ai adapter.AuthInfo) (*models.User, error) {
} }
t.Updated = time.Now() t.Updated = time.Now()
u, err = models.GetUserByID(t.UID) u, err := models.GetUserByID(t.UID)
if err != nil { if err != nil {
return nil, err return nil, err
} }