org_team.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Copyright 2015 The Gogs Authors. All rights reserved.
  2. // Copyright 2018 Gitote. All rights reserved.
  3. //
  4. // This source code is licensed under the MIT license found in the
  5. // LICENSE file in the root directory of this source tree.
  6. package admin
  7. import (
  8. "gitote/gitote/models"
  9. "gitote/gitote/pkg/context"
  10. "gitote/gitote/routes/api/v1/convert"
  11. "gitote/gitote/routes/api/v1/user"
  12. api "gitlab.com/gitote/go-gitote-client"
  13. )
  14. func CreateTeam(c *context.APIContext, form api.CreateTeamOption) {
  15. team := &models.Team{
  16. OrgID: c.Org.Organization.ID,
  17. Name: form.Name,
  18. Description: form.Description,
  19. Authorize: models.ParseAccessMode(form.Permission),
  20. }
  21. if err := models.NewTeam(team); err != nil {
  22. if models.IsErrTeamAlreadyExist(err) {
  23. c.Error(422, "", err)
  24. } else {
  25. c.Error(500, "NewTeam", err)
  26. }
  27. return
  28. }
  29. c.JSON(201, convert.ToTeam(team))
  30. }
  31. func AddTeamMember(c *context.APIContext) {
  32. u := user.GetUserByParams(c)
  33. if c.Written() {
  34. return
  35. }
  36. if err := c.Org.Team.AddMember(u.ID); err != nil {
  37. c.Error(500, "AddMember", err)
  38. return
  39. }
  40. c.Status(204)
  41. }
  42. func RemoveTeamMember(c *context.APIContext) {
  43. u := user.GetUserByParams(c)
  44. if c.Written() {
  45. return
  46. }
  47. if err := c.Org.Team.RemoveMember(u.ID); err != nil {
  48. c.Error(500, "RemoveMember", err)
  49. return
  50. }
  51. c.Status(204)
  52. }