org_team.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // Copyright 2015 - Present, The Gogs Authors. All rights reserved.
  2. // Copyright 2018 - Present, 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. // CreateTeam api for create a team
  15. func CreateTeam(c *context.APIContext, form api.CreateTeamOption) {
  16. team := &models.Team{
  17. OrgID: c.Org.Organization.ID,
  18. Name: form.Name,
  19. Description: form.Description,
  20. Authorize: models.ParseAccessMode(form.Permission),
  21. }
  22. if err := models.NewTeam(team); err != nil {
  23. if models.IsErrTeamAlreadyExist(err) {
  24. c.Error(422, "", err)
  25. } else {
  26. c.Error(500, "NewTeam", err)
  27. }
  28. return
  29. }
  30. c.JSON(201, convert.ToTeam(team))
  31. }
  32. // AddTeamMember api for add a member to a team
  33. func AddTeamMember(c *context.APIContext) {
  34. u := user.GetUserByParams(c)
  35. if c.Written() {
  36. return
  37. }
  38. if err := c.Org.Team.AddMember(u.ID); err != nil {
  39. c.Error(500, "AddMember", err)
  40. return
  41. }
  42. c.Status(204)
  43. }
  44. // RemoveTeamMember api for remove one member from a team
  45. func RemoveTeamMember(c *context.APIContext) {
  46. u := user.GetUserByParams(c)
  47. if c.Written() {
  48. return
  49. }
  50. if err := c.Org.Team.RemoveMember(u.ID); err != nil {
  51. c.Error(500, "RemoveMember", err)
  52. return
  53. }
  54. c.Status(204)
  55. }