@ -20,7 +20,7 @@ type ErrCaseInsensitiveLoginConflict struct {
}
func ( e * ErrCaseInsensitiveLoginConflict ) Unwrap ( ) error {
return models . ErrCaseInsensitive
return user . ErrCaseInsensitive
}
func ( e * ErrCaseInsensitiveLoginConflict ) Error ( ) string {
@ -100,7 +100,7 @@ func (ss *SQLStore) createUser(ctx context.Context, sess *DBSession, args user.C
return usr , err
}
if exists {
return usr , models . ErrUserAlreadyExists
return usr , user . ErrUserAlreadyExists
}
// create user
@ -196,25 +196,25 @@ func notServiceAccountFilter(ss *SQLStore) string {
func ( ss * SQLStore ) GetUserById ( ctx context . Context , query * models . GetUserByIdQuery ) error {
return ss . WithDbSession ( ctx , func ( sess * DBSession ) error {
use r := new ( user . User )
usr := new ( user . User )
has , err := sess . ID ( query . Id ) .
Where ( notServiceAccountFilter ( ss ) ) .
Get ( use r )
Get ( usr )
if err != nil {
return err
} else if ! has {
return models . ErrUserNotFound
return user . ErrUserNotFound
}
if ss . Cfg . CaseInsensitiveLogin {
if err := ss . userCaseInsensitiveLoginConflict ( ctx , sess , use r . Login , use r . Email ) ; err != nil {
if err := ss . userCaseInsensitiveLoginConflict ( ctx , sess , usr . Login , usr . Email ) ; err != nil {
return err
}
}
query . Result = use r
query . Result = usr
return nil
} )
@ -223,7 +223,7 @@ func (ss *SQLStore) GetUserById(ctx context.Context, query *models.GetUserByIdQu
func ( ss * SQLStore ) GetUserByLogin ( ctx context . Context , query * models . GetUserByLoginQuery ) error {
return ss . WithDbSession ( ctx , func ( sess * DBSession ) error {
if query . LoginOrEmail == "" {
return models . ErrUserNotFound
return user . ErrUserNotFound
}
// Try and find the user by login first.
@ -254,7 +254,7 @@ func (ss *SQLStore) GetUserByLogin(ctx context.Context, query *models.GetUserByL
if err != nil {
return err
} else if ! has {
return models . ErrUserNotFound
return user . ErrUserNotFound
}
if ss . Cfg . CaseInsensitiveLogin {
@ -272,30 +272,30 @@ func (ss *SQLStore) GetUserByLogin(ctx context.Context, query *models.GetUserByL
func ( ss * SQLStore ) GetUserByEmail ( ctx context . Context , query * models . GetUserByEmailQuery ) error {
return ss . WithDbSession ( ctx , func ( sess * DBSession ) error {
if query . Email == "" {
return models . ErrUserNotFound
return user . ErrUserNotFound
}
use r := & user . User { }
usr := & user . User { }
where := "email=?"
if ss . Cfg . CaseInsensitiveLogin {
where = "LOWER(email)=LOWER(?)"
}
has , err := sess . Where ( notServiceAccountFilter ( ss ) ) . Where ( where , query . Email ) . Get ( use r )
has , err := sess . Where ( notServiceAccountFilter ( ss ) ) . Where ( where , query . Email ) . Get ( usr )
if err != nil {
return err
} else if ! has {
return models . ErrUserNotFound
return user . ErrUserNotFound
}
if ss . Cfg . CaseInsensitiveLogin {
if err := ss . userCaseInsensitiveLoginConflict ( ctx , sess , use r . Login , use r . Email ) ; err != nil {
if err := ss . userCaseInsensitiveLoginConflict ( ctx , sess , usr . Login , usr . Email ) ; err != nil {
return err
}
}
query . Result = use r
query . Result = usr
return nil
} )
@ -405,26 +405,26 @@ func removeUserOrg(sess *DBSession, userID int64) error {
func ( ss * SQLStore ) GetUserProfile ( ctx context . Context , query * models . GetUserProfileQuery ) error {
return ss . WithDbSession ( ctx , func ( sess * DBSession ) error {
var use r user . User
has , err := sess . ID ( query . UserId ) . Where ( notServiceAccountFilter ( ss ) ) . Get ( & use r )
var usr user . User
has , err := sess . ID ( query . UserId ) . Where ( notServiceAccountFilter ( ss ) ) . Get ( & usr )
if err != nil {
return err
} else if ! has {
return models . ErrUserNotFound
return user . ErrUserNotFound
}
query . Result = models . UserProfileDTO {
Id : use r . ID ,
Name : use r . Name ,
Email : use r . Email ,
Login : use r . Login ,
Theme : use r . Theme ,
IsGrafanaAdmin : use r . IsAdmin ,
IsDisabled : use r . IsDisabled ,
OrgId : use r . OrgID ,
UpdatedAt : use r . Updated ,
CreatedAt : use r . Created ,
Id : usr . ID ,
Name : usr . Name ,
Email : usr . Email ,
Login : usr . Login ,
Theme : usr . Theme ,
IsGrafanaAdmin : usr . IsAdmin ,
IsDisabled : usr . IsDisabled ,
OrgId : usr . OrgID ,
UpdatedAt : usr . Updated ,
CreatedAt : usr . Created ,
}
return err
@ -536,35 +536,35 @@ func (ss *SQLStore) GetSignedInUser(ctx context.Context, query *models.GetSigned
}
}
var use r models . SignedInUser
has , err := sess . Get ( & use r )
var usr models . SignedInUser
has , err := sess . Get ( & usr )
if err != nil {
return err
} else if ! has {
return models . ErrUserNotFound
return user . ErrUserNotFound
}
if use r . OrgRole == "" {
use r . OrgId = - 1
use r . OrgName = "Org missing"
if usr . OrgRole == "" {
usr . OrgId = - 1
usr . OrgName = "Org missing"
}
if use r . ExternalAuthModule != "oauth_grafana_com" {
use r . ExternalAuthId = ""
if usr . ExternalAuthModule != "oauth_grafana_com" {
usr . ExternalAuthId = ""
}
// tempUser is used to retrieve the teams for the signed in user for internal use.
tempUser := & models . SignedInUser {
OrgId : use r . OrgId ,
OrgId : usr . OrgId ,
Permissions : map [ int64 ] map [ string ] [ ] string {
use r . OrgId : {
usr . OrgId : {
ac . ActionTeamsRead : { ac . ScopeTeamsAll } ,
} ,
} ,
}
getTeamsByUserQuery := & models . GetTeamsByUserQuery {
OrgId : use r . OrgId ,
UserId : use r . UserId ,
OrgId : usr . OrgId ,
UserId : usr . UserId ,
SignedInUser : tempUser ,
}
err = ss . GetTeamsByUser ( ctx , getTeamsByUserQuery )
@ -572,12 +572,12 @@ func (ss *SQLStore) GetSignedInUser(ctx context.Context, query *models.GetSigned
return err
}
use r . Teams = make ( [ ] int64 , len ( getTeamsByUserQuery . Result ) )
usr . Teams = make ( [ ] int64 , len ( getTeamsByUserQuery . Result ) )
for i , t := range getTeamsByUserQuery . Result {
use r . Teams [ i ] = t . Id
usr . Teams [ i ] = t . Id
}
query . Result = & use r
query . Result = & usr
return err
} )
}
@ -699,19 +699,19 @@ func (ss *SQLStore) SearchUsers(ctx context.Context, query *models.SearchUsersQu
func ( ss * SQLStore ) DisableUser ( ctx context . Context , cmd * models . DisableUserCommand ) error {
return ss . WithDbSession ( ctx , func ( dbSess * DBSession ) error {
use r := user . User { }
usr := user . User { }
sess := dbSess . Table ( "user" )
if has , err := sess . ID ( cmd . UserId ) . Where ( notServiceAccountFilter ( ss ) ) . Get ( & use r ) ; err != nil {
if has , err := sess . ID ( cmd . UserId ) . Where ( notServiceAccountFilter ( ss ) ) . Get ( & usr ) ; err != nil {
return err
} else if ! has {
return models . ErrUserNotFound
return user . ErrUserNotFound
}
use r . IsDisabled = cmd . IsDisabled
usr . IsDisabled = cmd . IsDisabled
sess . UseBool ( "is_disabled" )
_ , err := sess . ID ( cmd . UserId ) . Update ( & use r )
_ , err := sess . ID ( cmd . UserId ) . Update ( & usr )
return err
} )
}
@ -745,13 +745,13 @@ func (ss *SQLStore) DeleteUser(ctx context.Context, cmd *models.DeleteUserComman
func deleteUserInTransaction ( ss * SQLStore , sess * DBSession , cmd * models . DeleteUserCommand ) error {
// Check if user exists
use r := user . User { ID : cmd . UserId }
has , err := sess . Where ( notServiceAccountFilter ( ss ) ) . Get ( & use r )
usr := user . User { ID : cmd . UserId }
has , err := sess . Where ( notServiceAccountFilter ( ss ) ) . Get ( & usr )
if err != nil {
return err
}
if ! has {
return models . ErrUserNotFound
return user . ErrUserNotFound
}
for _ , sql := range UserDeletions ( ) {
_ , err := sess . Exec ( sql , cmd . UserId )
@ -864,7 +864,7 @@ func validateOneAdminLeft(sess *DBSession) error {
}
if count == 0 {
return models . ErrLastGrafanaAdmin
return user . ErrLastGrafanaAdmin
}
return nil