From 23f163e8cfec76d77bebd84d5f5e1841d6907c67 Mon Sep 17 00:00:00 2001 From: Dan Cech Date: Mon, 19 Mar 2018 17:09:49 -0400 Subject: [PATCH] fixes --- pkg/login/ext_user.go | 20 ++++++++++--------- pkg/models/user_auth.go | 5 +++++ .../sqlstore/migrations/user_auth_mig.go | 2 +- pkg/services/sqlstore/user_auth.go | 3 +++ 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/pkg/login/ext_user.go b/pkg/login/ext_user.go index 5ae00b1b895..02f70b3e00b 100644 --- a/pkg/login/ext_user.go +++ b/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 } diff --git a/pkg/models/user_auth.go b/pkg/models/user_auth.go index ef880806963..99c1a70c153 100644 --- a/pkg/models/user_auth.go +++ b/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 { diff --git a/pkg/services/sqlstore/migrations/user_auth_mig.go b/pkg/services/sqlstore/migrations/user_auth_mig.go index 026d41a4830..4d8a18ce33e 100644 --- a/pkg/services/sqlstore/migrations/user_auth_mig.go +++ b/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}, }, diff --git a/pkg/services/sqlstore/user_auth.go b/pkg/services/sqlstore/user_auth.go index abd5152d59f..071f003d6ad 100644 --- a/pkg/services/sqlstore/user_auth.go +++ b/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)