mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
new column for team_member table
This commit is contained in:
parent
270b736302
commit
9a6446c2b5
@ -4,6 +4,7 @@ import (
|
|||||||
"github.com/grafana/grafana/pkg/api/dtos"
|
"github.com/grafana/grafana/pkg/api/dtos"
|
||||||
"github.com/grafana/grafana/pkg/bus"
|
"github.com/grafana/grafana/pkg/bus"
|
||||||
m "github.com/grafana/grafana/pkg/models"
|
m "github.com/grafana/grafana/pkg/models"
|
||||||
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
"github.com/grafana/grafana/pkg/util"
|
"github.com/grafana/grafana/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -17,6 +18,11 @@ func GetTeamMembers(c *m.ReqContext) Response {
|
|||||||
|
|
||||||
for _, member := range query.Result {
|
for _, member := range query.Result {
|
||||||
member.AvatarUrl = dtos.GetGravatarUrl(member.Email)
|
member.AvatarUrl = dtos.GetGravatarUrl(member.Email)
|
||||||
|
member.Labels = []string{}
|
||||||
|
|
||||||
|
if setting.IsEnterprise && setting.LdapEnabled && member.External {
|
||||||
|
member.Labels = append(member.Labels, "LDAP")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return JSON(200, query.Result)
|
return JSON(200, query.Result)
|
||||||
|
@ -16,6 +16,7 @@ type TeamMember struct {
|
|||||||
OrgId int64
|
OrgId int64
|
||||||
TeamId int64
|
TeamId int64
|
||||||
UserId int64
|
UserId int64
|
||||||
|
External bool
|
||||||
|
|
||||||
Created time.Time
|
Created time.Time
|
||||||
Updated time.Time
|
Updated time.Time
|
||||||
@ -28,6 +29,7 @@ type AddTeamMemberCommand struct {
|
|||||||
UserId int64 `json:"userId" binding:"Required"`
|
UserId int64 `json:"userId" binding:"Required"`
|
||||||
OrgId int64 `json:"-"`
|
OrgId int64 `json:"-"`
|
||||||
TeamId int64 `json:"-"`
|
TeamId int64 `json:"-"`
|
||||||
|
External bool `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type RemoveTeamMemberCommand struct {
|
type RemoveTeamMemberCommand struct {
|
||||||
@ -43,6 +45,7 @@ type GetTeamMembersQuery struct {
|
|||||||
OrgId int64
|
OrgId int64
|
||||||
TeamId int64
|
TeamId int64
|
||||||
UserId int64
|
UserId int64
|
||||||
|
External bool
|
||||||
Result []*TeamMemberDTO
|
Result []*TeamMemberDTO
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,7 +56,9 @@ type TeamMemberDTO struct {
|
|||||||
OrgId int64 `json:"orgId"`
|
OrgId int64 `json:"orgId"`
|
||||||
TeamId int64 `json:"teamId"`
|
TeamId int64 `json:"teamId"`
|
||||||
UserId int64 `json:"userId"`
|
UserId int64 `json:"userId"`
|
||||||
|
External bool `json:"-"`
|
||||||
Email string `json:"email"`
|
Email string `json:"email"`
|
||||||
Login string `json:"login"`
|
Login string `json:"login"`
|
||||||
AvatarUrl string `json:"avatarUrl"`
|
AvatarUrl string `json:"avatarUrl"`
|
||||||
|
Labels []string `json:"labels"`
|
||||||
}
|
}
|
||||||
|
@ -51,4 +51,7 @@ func addTeamMigrations(mg *Migrator) {
|
|||||||
Name: "email", Type: DB_NVarchar, Nullable: true, Length: 190,
|
Name: "email", Type: DB_NVarchar, Nullable: true, Length: 190,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
mg.AddMigration("Add column external to team_member table", NewAddColumnMigration(teamMemberV1, &Column{
|
||||||
|
Name: "external", Type: DB_Bool, Nullable: true,
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
|
@ -243,6 +243,7 @@ func AddTeamMember(cmd *m.AddTeamMemberCommand) error {
|
|||||||
OrgId: cmd.OrgId,
|
OrgId: cmd.OrgId,
|
||||||
TeamId: cmd.TeamId,
|
TeamId: cmd.TeamId,
|
||||||
UserId: cmd.UserId,
|
UserId: cmd.UserId,
|
||||||
|
External: cmd.External,
|
||||||
Created: time.Now(),
|
Created: time.Now(),
|
||||||
Updated: time.Now(),
|
Updated: time.Now(),
|
||||||
}
|
}
|
||||||
@ -289,7 +290,10 @@ func GetTeamMembers(query *m.GetTeamMembersQuery) error {
|
|||||||
if query.UserId != 0 {
|
if query.UserId != 0 {
|
||||||
sess.Where("team_member.user_id=?", query.UserId)
|
sess.Where("team_member.user_id=?", query.UserId)
|
||||||
}
|
}
|
||||||
sess.Cols("user.org_id", "team_member.team_id", "team_member.user_id", "user.email", "user.login")
|
if query.External {
|
||||||
|
sess.Where("team_member.external=?", dialect.BooleanStr(true))
|
||||||
|
}
|
||||||
|
sess.Cols("team_member.org_id", "team_member.team_id", "team_member.user_id", "user.email", "user.login", "team_member.external")
|
||||||
sess.Asc("user.login", "user.email")
|
sess.Asc("user.login", "user.email")
|
||||||
|
|
||||||
err := sess.Find(&query.Result)
|
err := sess.Find(&query.Result)
|
||||||
|
@ -50,13 +50,29 @@ func TestTeamCommandsAndQueries(t *testing.T) {
|
|||||||
|
|
||||||
err = AddTeamMember(&m.AddTeamMemberCommand{OrgId: testOrgId, TeamId: team1.Id, UserId: userIds[0]})
|
err = AddTeamMember(&m.AddTeamMemberCommand{OrgId: testOrgId, TeamId: team1.Id, UserId: userIds[0]})
|
||||||
So(err, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
|
err = AddTeamMember(&m.AddTeamMemberCommand{OrgId: testOrgId, TeamId: team1.Id, UserId: userIds[1], External: true})
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
|
||||||
q1 := &m.GetTeamMembersQuery{OrgId: testOrgId, TeamId: team1.Id}
|
q1 := &m.GetTeamMembersQuery{OrgId: testOrgId, TeamId: team1.Id}
|
||||||
err = GetTeamMembers(q1)
|
err = GetTeamMembers(q1)
|
||||||
So(err, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
|
So(q1.Result, ShouldHaveLength, 2)
|
||||||
So(q1.Result[0].TeamId, ShouldEqual, team1.Id)
|
So(q1.Result[0].TeamId, ShouldEqual, team1.Id)
|
||||||
So(q1.Result[0].Login, ShouldEqual, "loginuser0")
|
So(q1.Result[0].Login, ShouldEqual, "loginuser0")
|
||||||
So(q1.Result[0].OrgId, ShouldEqual, testOrgId)
|
So(q1.Result[0].OrgId, ShouldEqual, testOrgId)
|
||||||
|
So(q1.Result[1].TeamId, ShouldEqual, team1.Id)
|
||||||
|
So(q1.Result[1].Login, ShouldEqual, "loginuser1")
|
||||||
|
So(q1.Result[1].OrgId, ShouldEqual, testOrgId)
|
||||||
|
So(q1.Result[1].External, ShouldEqual, true)
|
||||||
|
|
||||||
|
q2 := &m.GetTeamMembersQuery{OrgId: testOrgId, TeamId: team1.Id, External: true}
|
||||||
|
err = GetTeamMembers(q2)
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
So(q2.Result, ShouldHaveLength, 1)
|
||||||
|
So(q2.Result[0].TeamId, ShouldEqual, team1.Id)
|
||||||
|
So(q2.Result[0].Login, ShouldEqual, "loginuser1")
|
||||||
|
So(q2.Result[0].OrgId, ShouldEqual, testOrgId)
|
||||||
|
So(q2.Result[0].External, ShouldEqual, true)
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("Should be able to search for teams", func() {
|
Convey("Should be able to search for teams", func() {
|
||||||
|
Loading…
Reference in New Issue
Block a user