mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Move tem member models to team pkg (#61294)
* Chore: Move tem member models to team pkg * Fix test lint
This commit is contained in:
@@ -33,27 +33,28 @@ func (hs *HTTPServer) GetTeamMembers(c *models.ReqContext) response.Response {
|
||||
return response.Error(http.StatusBadRequest, "teamId is invalid", err)
|
||||
}
|
||||
|
||||
query := models.GetTeamMembersQuery{OrgId: c.OrgID, TeamId: teamId, SignedInUser: c.SignedInUser}
|
||||
query := team.GetTeamMembersQuery{OrgID: c.OrgID, TeamID: teamId, SignedInUser: c.SignedInUser}
|
||||
|
||||
// With accesscontrol the permission check has been done at middleware layer
|
||||
// and the membership filtering will be done at DB layer based on user permissions
|
||||
if hs.AccessControl.IsDisabled() {
|
||||
if err := hs.teamGuardian.CanAdmin(c.Req.Context(), query.OrgId, query.TeamId, c.SignedInUser); err != nil {
|
||||
if err := hs.teamGuardian.CanAdmin(c.Req.Context(), query.OrgID, query.TeamID, c.SignedInUser); err != nil {
|
||||
return response.Error(403, "Not allowed to list team members", err)
|
||||
}
|
||||
}
|
||||
|
||||
if err := hs.teamService.GetTeamMembers(c.Req.Context(), &query); err != nil {
|
||||
queryResult, err := hs.teamService.GetTeamMembers(c.Req.Context(), &query)
|
||||
if err != nil {
|
||||
return response.Error(500, "Failed to get Team Members", err)
|
||||
}
|
||||
|
||||
filteredMembers := make([]*models.TeamMemberDTO, 0, len(query.Result))
|
||||
for _, member := range query.Result {
|
||||
filteredMembers := make([]*team.TeamMemberDTO, 0, len(queryResult))
|
||||
for _, member := range queryResult {
|
||||
if dtos.IsHiddenUser(member.Login, c.SignedInUser, hs.Cfg) {
|
||||
continue
|
||||
}
|
||||
|
||||
member.AvatarUrl = dtos.GetGravatarUrl(member.Email)
|
||||
member.AvatarURL = dtos.GetGravatarUrl(member.Email)
|
||||
member.Labels = []string{}
|
||||
|
||||
if hs.License.FeatureEnabled("teamgroupsync") && member.External {
|
||||
@@ -78,24 +79,24 @@ func (hs *HTTPServer) GetTeamMembers(c *models.ReqContext) response.Response {
|
||||
// 404: notFoundError
|
||||
// 500: internalServerError
|
||||
func (hs *HTTPServer) AddTeamMember(c *models.ReqContext) response.Response {
|
||||
cmd := models.AddTeamMemberCommand{}
|
||||
cmd := team.AddTeamMemberCommand{}
|
||||
var err error
|
||||
if err := web.Bind(c.Req, &cmd); err != nil {
|
||||
return response.Error(http.StatusBadRequest, "bad request data", err)
|
||||
}
|
||||
cmd.OrgId = c.OrgID
|
||||
cmd.TeamId, err = strconv.ParseInt(web.Params(c.Req)[":teamId"], 10, 64)
|
||||
cmd.OrgID = c.OrgID
|
||||
cmd.TeamID, err = strconv.ParseInt(web.Params(c.Req)[":teamId"], 10, 64)
|
||||
if err != nil {
|
||||
return response.Error(http.StatusBadRequest, "teamId is invalid", err)
|
||||
}
|
||||
|
||||
if hs.AccessControl.IsDisabled() {
|
||||
if err := hs.teamGuardian.CanAdmin(c.Req.Context(), cmd.OrgId, cmd.TeamId, c.SignedInUser); err != nil {
|
||||
if err := hs.teamGuardian.CanAdmin(c.Req.Context(), cmd.OrgID, cmd.TeamID, c.SignedInUser); err != nil {
|
||||
return response.Error(403, "Not allowed to add team member", err)
|
||||
}
|
||||
}
|
||||
|
||||
isTeamMember, err := hs.teamService.IsTeamMember(c.OrgID, cmd.TeamId, cmd.UserId)
|
||||
isTeamMember, err := hs.teamService.IsTeamMember(c.OrgID, cmd.TeamID, cmd.UserID)
|
||||
if err != nil {
|
||||
return response.Error(500, "Failed to add team member.", err)
|
||||
}
|
||||
@@ -103,7 +104,7 @@ func (hs *HTTPServer) AddTeamMember(c *models.ReqContext) response.Response {
|
||||
return response.Error(400, "User is already added to this team", nil)
|
||||
}
|
||||
|
||||
err = addOrUpdateTeamMember(c.Req.Context(), hs.teamPermissionsService, cmd.UserId, cmd.OrgId, cmd.TeamId, getPermissionName(cmd.Permission))
|
||||
err = addOrUpdateTeamMember(c.Req.Context(), hs.teamPermissionsService, cmd.UserID, cmd.OrgID, cmd.TeamID, getPermissionName(cmd.Permission))
|
||||
if err != nil {
|
||||
return response.Error(500, "Failed to add Member to Team", err)
|
||||
}
|
||||
@@ -124,7 +125,7 @@ func (hs *HTTPServer) AddTeamMember(c *models.ReqContext) response.Response {
|
||||
// 404: notFoundError
|
||||
// 500: internalServerError
|
||||
func (hs *HTTPServer) UpdateTeamMember(c *models.ReqContext) response.Response {
|
||||
cmd := models.UpdateTeamMemberCommand{}
|
||||
cmd := team.UpdateTeamMemberCommand{}
|
||||
if err := web.Bind(c.Req, &cmd); err != nil {
|
||||
return response.Error(http.StatusBadRequest, "bad request data", err)
|
||||
}
|
||||
@@ -233,7 +234,7 @@ type GetTeamMembersParams struct {
|
||||
type AddTeamMemberParams struct {
|
||||
// in:body
|
||||
// required:true
|
||||
Body models.AddTeamMemberCommand `json:"body"`
|
||||
Body team.AddTeamMemberCommand `json:"body"`
|
||||
// in:path
|
||||
// required:true
|
||||
TeamID string `json:"team_id"`
|
||||
@@ -243,7 +244,7 @@ type AddTeamMemberParams struct {
|
||||
type UpdateTeamMemberParams struct {
|
||||
// in:body
|
||||
// required:true
|
||||
Body models.UpdateTeamMemberCommand `json:"body"`
|
||||
Body team.UpdateTeamMemberCommand `json:"body"`
|
||||
// in:path
|
||||
// required:true
|
||||
TeamID string `json:"team_id"`
|
||||
@@ -266,5 +267,5 @@ type RemoveTeamMemberParams struct {
|
||||
type GetTeamMembersResponse struct {
|
||||
// The response message
|
||||
// in: body
|
||||
Body []*models.TeamMemberDTO `json:"body"`
|
||||
Body []*team.TeamMemberDTO `json:"body"`
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/actest"
|
||||
"github.com/grafana/grafana/pkg/services/team"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/mock"
|
||||
"github.com/stretchr/testify/require"
|
||||
@@ -91,7 +92,7 @@ func TestTeamMembersAPIEndpoint_userLoggedIn(t *testing.T) {
|
||||
|
||||
require.Equal(t, http.StatusOK, sc.resp.Code)
|
||||
|
||||
var resp []models.TeamMemberDTO
|
||||
var resp []team.TeamMemberDTO
|
||||
err := json.Unmarshal(sc.resp.Body.Bytes(), &resp)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, resp, 3)
|
||||
@@ -113,7 +114,7 @@ func TestTeamMembersAPIEndpoint_userLoggedIn(t *testing.T) {
|
||||
|
||||
require.Equal(t, http.StatusOK, sc.resp.Code)
|
||||
|
||||
var resp []models.TeamMemberDTO
|
||||
var resp []team.TeamMemberDTO
|
||||
err := json.Unmarshal(sc.resp.Body.Bytes(), &resp)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, resp, 3)
|
||||
@@ -132,9 +133,9 @@ func TestAddTeamMembersAPIEndpoint_LegacyAccessControl(t *testing.T) {
|
||||
hs.Cfg = cfg
|
||||
hs.teamService = teamtest.NewFakeService()
|
||||
store := &database.TeamGuardianStoreMock{}
|
||||
store.On("GetTeamMembers", mock.Anything, mock.Anything).Return([]*models.TeamMemberDTO{
|
||||
{UserId: 2, Permission: models.PERMISSION_ADMIN},
|
||||
{UserId: 3, Permission: models.PERMISSION_VIEW},
|
||||
store.On("GetTeamMembers", mock.Anything, mock.Anything).Return([]*team.TeamMemberDTO{
|
||||
{UserID: 2, Permission: models.PERMISSION_ADMIN},
|
||||
{UserID: 3, Permission: models.PERMISSION_VIEW},
|
||||
}, nil).Maybe()
|
||||
hs.teamGuardian = manager.ProvideService(store)
|
||||
hs.teamPermissionsService = &actest.FakePermissionsService{}
|
||||
@@ -252,9 +253,9 @@ func TestUpdateTeamMembersAPIEndpoint_LegacyAccessControl(t *testing.T) {
|
||||
hs.Cfg = cfg
|
||||
hs.teamService = &teamtest.FakeService{ExpectedIsMember: true}
|
||||
store := &database.TeamGuardianStoreMock{}
|
||||
store.On("GetTeamMembers", mock.Anything, mock.Anything).Return([]*models.TeamMemberDTO{
|
||||
{UserId: 2, Permission: models.PERMISSION_ADMIN},
|
||||
{UserId: 3, Permission: models.PERMISSION_VIEW},
|
||||
store.On("GetTeamMembers", mock.Anything, mock.Anything).Return([]*team.TeamMemberDTO{
|
||||
{UserID: 2, Permission: models.PERMISSION_ADMIN},
|
||||
{UserID: 3, Permission: models.PERMISSION_VIEW},
|
||||
}, nil).Maybe()
|
||||
hs.teamGuardian = manager.ProvideService(store)
|
||||
hs.teamPermissionsService = &actest.FakePermissionsService{}
|
||||
@@ -342,9 +343,9 @@ func TestDeleteTeamMembersAPIEndpoint_LegacyAccessControl(t *testing.T) {
|
||||
hs.Cfg = cfg
|
||||
hs.teamService = &teamtest.FakeService{ExpectedIsMember: true}
|
||||
store := &database.TeamGuardianStoreMock{}
|
||||
store.On("GetTeamMembers", mock.Anything, mock.Anything).Return([]*models.TeamMemberDTO{
|
||||
{UserId: 2, Permission: models.PERMISSION_ADMIN},
|
||||
{UserId: 3, Permission: models.PERMISSION_VIEW},
|
||||
store.On("GetTeamMembers", mock.Anything, mock.Anything).Return([]*team.TeamMemberDTO{
|
||||
{UserID: 2, Permission: models.PERMISSION_ADMIN},
|
||||
{UserID: 3, Permission: models.PERMISSION_VIEW},
|
||||
}, nil).Maybe()
|
||||
hs.teamGuardian = manager.ProvideService(store)
|
||||
hs.teamPermissionsService = &actest.FakePermissionsService{}
|
||||
|
||||
Reference in New Issue
Block a user