mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 01:53:33 -06:00
Fixed GetOtherAccountsFor query
This commit is contained in:
parent
705455d5d6
commit
53b00d80d6
@ -19,14 +19,6 @@ var (
|
|||||||
ErrAccountNotFound = errors.New("Account not found")
|
ErrAccountNotFound = errors.New("Account not found")
|
||||||
)
|
)
|
||||||
|
|
||||||
type CollaboratorLink struct {
|
|
||||||
AccountId int64
|
|
||||||
Role string
|
|
||||||
Email string
|
|
||||||
ModifiedOn time.Time
|
|
||||||
CreatedOn time.Time
|
|
||||||
}
|
|
||||||
|
|
||||||
type OtherAccount struct {
|
type OtherAccount struct {
|
||||||
Id int64
|
Id int64
|
||||||
Email string
|
Email string
|
||||||
@ -45,44 +37,6 @@ type Account struct {
|
|||||||
Company string
|
Company string
|
||||||
NextDashboardId int
|
NextDashboardId int
|
||||||
UsingAccountId int64
|
UsingAccountId int64
|
||||||
Collaborators []CollaboratorLink `xorm:"-"`
|
Created time.Time `xorm:"CREATED"`
|
||||||
Created time.Time `xorm:"CREATED"`
|
Updated time.Time `xorm:"UPDATED"`
|
||||||
Updated time.Time `xorm:"UPDATED"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (account *Account) AddCollaborator(newCollaborator *Account) error {
|
|
||||||
for _, collaborator := range account.Collaborators {
|
|
||||||
if collaborator.AccountId == newCollaborator.Id {
|
|
||||||
return errors.New("Collaborator already exists")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
account.Collaborators = append(account.Collaborators, CollaboratorLink{
|
|
||||||
AccountId: newCollaborator.Id,
|
|
||||||
Email: newCollaborator.Email,
|
|
||||||
Role: "admin",
|
|
||||||
CreatedOn: time.Now(),
|
|
||||||
ModifiedOn: time.Now(),
|
|
||||||
})
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (account *Account) RemoveCollaborator(accountId int64) {
|
|
||||||
list := account.Collaborators
|
|
||||||
for i, collaborator := range list {
|
|
||||||
if collaborator.AccountId == accountId {
|
|
||||||
account.Collaborators = append(list[:i], list[i+1:]...)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (account *Account) HasCollaborator(accountId int64) bool {
|
|
||||||
for _, collaborator := range account.Collaborators {
|
|
||||||
if collaborator.AccountId == accountId {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
@ -96,8 +96,9 @@ func AddCollaborator(collaborator *models.Collaborator) error {
|
|||||||
func GetOtherAccountsFor(accountId int64) ([]*models.OtherAccount, error) {
|
func GetOtherAccountsFor(accountId int64) ([]*models.OtherAccount, error) {
|
||||||
collaborators := make([]*models.OtherAccount, 0)
|
collaborators := make([]*models.OtherAccount, 0)
|
||||||
sess := x.Table("collaborator")
|
sess := x.Table("collaborator")
|
||||||
sess.Join("INNER", "account", "account.id=collaborator.account_Id")
|
sess.Join("INNER", "account", "collaborator.for_account_id=account.id")
|
||||||
sess.Where("account_id=?", accountId)
|
sess.Where("account_id=?", accountId)
|
||||||
|
sess.Cols("collaborator.id", "collaborator.role", "account.email")
|
||||||
err := sess.Find(&collaborators)
|
err := sess.Find(&collaborators)
|
||||||
return collaborators, err
|
return collaborators, err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user