team_members.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package api
  2. import (
  3. "github.com/grafana/grafana/pkg/api/dtos"
  4. "github.com/grafana/grafana/pkg/bus"
  5. m "github.com/grafana/grafana/pkg/models"
  6. "github.com/grafana/grafana/pkg/setting"
  7. "github.com/grafana/grafana/pkg/util"
  8. )
  9. // GET /api/teams/:teamId/members
  10. func GetTeamMembers(c *m.ReqContext) Response {
  11. query := m.GetTeamMembersQuery{OrgId: c.OrgId, TeamId: c.ParamsInt64(":teamId")}
  12. if err := bus.Dispatch(&query); err != nil {
  13. return Error(500, "Failed to get Team Members", err)
  14. }
  15. for _, member := range query.Result {
  16. member.AvatarUrl = dtos.GetGravatarUrl(member.Email)
  17. member.Labels = []string{}
  18. if setting.IsEnterprise && setting.LdapEnabled && member.External {
  19. member.Labels = append(member.Labels, "LDAP")
  20. }
  21. }
  22. return JSON(200, query.Result)
  23. }
  24. // POST /api/teams/:teamId/members
  25. func AddTeamMember(c *m.ReqContext, cmd m.AddTeamMemberCommand) Response {
  26. cmd.TeamId = c.ParamsInt64(":teamId")
  27. cmd.OrgId = c.OrgId
  28. if err := bus.Dispatch(&cmd); err != nil {
  29. if err == m.ErrTeamNotFound {
  30. return Error(404, "Team not found", nil)
  31. }
  32. if err == m.ErrTeamMemberAlreadyAdded {
  33. return Error(400, "User is already added to this team", nil)
  34. }
  35. return Error(500, "Failed to add Member to Team", err)
  36. }
  37. return JSON(200, &util.DynMap{
  38. "message": "Member added to Team",
  39. })
  40. }
  41. // DELETE /api/teams/:teamId/members/:userId
  42. func RemoveTeamMember(c *m.ReqContext) Response {
  43. if err := bus.Dispatch(&m.RemoveTeamMemberCommand{OrgId: c.OrgId, TeamId: c.ParamsInt64(":teamId"), UserId: c.ParamsInt64(":userId")}); err != nil {
  44. if err == m.ErrTeamNotFound {
  45. return Error(404, "Team not found", nil)
  46. }
  47. if err == m.ErrTeamMemberNotFound {
  48. return Error(404, "Team member not found", nil)
  49. }
  50. return Error(500, "Failed to remove Member from Team", err)
  51. }
  52. return Success("Team Member removed")
  53. }