Dan Cech 7 rokov pred
rodič
commit
23f163e8cf

+ 11 - 9
pkg/login/ext_user.go

@@ -53,6 +53,17 @@ func UpsertUser(ctx *m.ReqContext, cmd *m.UpsertUserCommand) error {
 		}
 	}
 
+	if userQuery.UserAuth == nil && extUser.AuthModule != "" && extUser.AuthId != "" {
+		cmd2 := m.SetAuthInfoCommand{
+			UserId:     cmd.User.Id,
+			AuthModule: extUser.AuthModule,
+			AuthId:     extUser.AuthId,
+		}
+		if err := bus.Dispatch(&cmd2); err != nil {
+			return err
+		}
+	}
+
 	err = syncOrgRoles(cmd.User, extUser)
 	if err != nil {
 		return err
@@ -71,15 +82,6 @@ func createUser(extUser *m.ExternalUserInfo) (*m.User, error) {
 		return nil, err
 	}
 
-	cmd2 := m.SetAuthInfoCommand{
-		UserId:     cmd.Result.Id,
-		AuthModule: extUser.AuthModule,
-		AuthId:     extUser.AuthId,
-	}
-	if err := bus.Dispatch(&cmd2); err != nil {
-		return nil, err
-	}
-
 	return &cmd.Result, nil
 }
 

+ 5 - 0
pkg/models/user_auth.go

@@ -1,10 +1,15 @@
 package models
 
+import (
+	"time"
+)
+
 type UserAuth struct {
 	Id         int64
 	UserId     int64
 	AuthModule string
 	AuthId     string
+	Created    time.Time
 }
 
 type ExternalUserInfo struct {

+ 1 - 1
pkg/services/sqlstore/migrations/user_auth_mig.go

@@ -8,7 +8,7 @@ func addUserAuthMigrations(mg *Migrator) {
 		Columns: []*Column{
 			{Name: "id", Type: DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true},
 			{Name: "user_id", Type: DB_BigInt, Nullable: false},
-			{Name: "auth_module", Type: DB_NVarchar, Length: 30, Nullable: false},
+			{Name: "auth_module", Type: DB_NVarchar, Length: 190, Nullable: false},
 			{Name: "auth_id", Type: DB_NVarchar, Length: 100, Nullable: false},
 			{Name: "created", Type: DB_DateTime, Nullable: false},
 		},

+ 3 - 0
pkg/services/sqlstore/user_auth.go

@@ -1,6 +1,8 @@
 package sqlstore
 
 import (
+	"time"
+
 	"github.com/grafana/grafana/pkg/bus"
 	m "github.com/grafana/grafana/pkg/models"
 )
@@ -107,6 +109,7 @@ func SetAuthInfo(cmd *m.SetAuthInfoCommand) error {
 			UserId:     cmd.UserId,
 			AuthModule: cmd.AuthModule,
 			AuthId:     cmd.AuthId,
+			Created:    time.Now(),
 		}
 
 		_, err := sess.Insert(&authUser)