func createTeamFromSSO(c *Context, w http.ResponseWriter, r *http.Request) { params := mux.Vars(r) service := params["service"] sso := utils.Cfg.GetSSOService(service) if sso != nil && !sso.Enable { c.SetInvalidParam("createTeamFromSSO", "service") return } team := model.TeamFromJson(r.Body) if team == nil { c.SetInvalidParam("createTeamFromSSO", "team") return } if !isTreamCreationAllowed(c, team.Email) { return } team.PreSave() team.Name = model.CleanTeamName(team.Name) if err := team.IsValid(); err != nil { c.Err = err return } team.Id = "" found := true count := 0 for found { if found = FindTeamByName(c, team.Name, "true"); c.Err != nil { return } else if found { team.Name = team.Name + strconv.Itoa(count) count += 1 } } if result := <-Srv.Store.Team().Save(team); result.Err != nil { c.Err = result.Err return } else { rteam := result.Data.(*model.Team) if _, err := CreateDefaultChannels(c, rteam.Id); err != nil { c.Err = nil return } data := map[string]string{"follow_link": c.GetSiteURL() + "/" + rteam.Name + "/signup/" + service} w.Write([]byte(model.MapToJson(data))) } }
func createTeam(c *Context, w http.ResponseWriter, r *http.Request) { team := model.TeamFromJson(r.Body) if team == nil { c.SetInvalidParam("createTeam", "team") return } if utils.Cfg.ServiceSettings.Mode != utils.MODE_DEV { c.Err = model.NewAppError("createTeam", "The mode does not allow network creation without a valid invite", "") return } if result := <-Srv.Store.Team().Save(team); result.Err != nil { c.Err = result.Err return } else { rteam := result.Data.(*model.Team) if _, err := CreateDefaultChannels(c, rteam.Id); err != nil { c.Err = nil return } if rteam.AllowValet { CreateValet(c, rteam) if c.Err != nil { return } } w.Write([]byte(rteam.ToJson())) } }
func createTeam(c *Context, w http.ResponseWriter, r *http.Request) { team := model.TeamFromJson(r.Body) rteam := CreateTeam(c, team) if c.Err != nil { return } w.Write([]byte(rteam.ToJson())) }
func updateTeam(c *Context, w http.ResponseWriter, r *http.Request) { team := model.TeamFromJson(r.Body) if team == nil { c.SetInvalidParam("updateTeam", "team") return } team.Id = c.TeamId if !HasPermissionToTeamContext(c, team.Id, model.PERMISSION_MANAGE_TEAM) { c.Err = model.NewLocAppError("updateTeam", "api.team.update_team.permissions.app_error", nil, "userId="+c.Session.UserId) c.Err.StatusCode = http.StatusForbidden return } var oldTeam *model.Team if result := <-Srv.Store.Team().Get(team.Id); result.Err != nil { c.Err = result.Err return } else { oldTeam = result.Data.(*model.Team) } oldTeam.DisplayName = team.DisplayName oldTeam.Description = team.Description oldTeam.InviteId = team.InviteId oldTeam.AllowOpenInvite = team.AllowOpenInvite oldTeam.CompanyName = team.CompanyName oldTeam.AllowedDomains = team.AllowedDomains //oldTeam.Type = team.Type if result := <-Srv.Store.Team().Update(oldTeam); result.Err != nil { c.Err = result.Err return } oldTeam.Sanitize() message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_UPDATE_TEAM, "", "", "", nil) message.Add("team", oldTeam.ToJson()) go Publish(message) w.Write([]byte(oldTeam.ToJson())) }
func createTeam(c *Context, w http.ResponseWriter, r *http.Request) { if utils.Cfg.ServiceSettings.DisableEmailSignUp { c.Err = model.NewAppError("createTeam", "Team sign-up with email is disabled.", "") c.Err.StatusCode = http.StatusNotImplemented return } team := model.TeamFromJson(r.Body) if team == nil { c.SetInvalidParam("createTeam", "team") return } if !isTreamCreationAllowed(c, team.Email) { return } if utils.Cfg.ServiceSettings.Mode != utils.MODE_DEV { c.Err = model.NewAppError("createTeam", "The mode does not allow network creation without a valid invite", "") return } if result := <-Srv.Store.Team().Save(team); result.Err != nil { c.Err = result.Err return } else { rteam := result.Data.(*model.Team) if _, err := CreateDefaultChannels(c, rteam.Id); err != nil { c.Err = err return } if rteam.AllowValet { CreateValet(c, rteam) if c.Err != nil { return } } w.Write([]byte(rteam.ToJson())) } }
func updateTeam(c *Context, w http.ResponseWriter, r *http.Request) { team := model.TeamFromJson(r.Body) if team == nil { c.SetInvalidParam("updateTeam", "team") return } team.Id = c.Session.TeamId if !c.IsTeamAdmin() { c.Err = model.NewAppError("updateTeam", "You do not have the appropriate permissions", "userId="+c.Session.UserId) c.Err.StatusCode = http.StatusForbidden return } var oldTeam *model.Team if result := <-Srv.Store.Team().Get(team.Id); result.Err != nil { c.Err = result.Err return } else { oldTeam = result.Data.(*model.Team) } oldTeam.DisplayName = team.DisplayName oldTeam.InviteId = team.InviteId oldTeam.AllowOpenInvite = team.AllowOpenInvite oldTeam.AllowTeamListing = team.AllowTeamListing oldTeam.CompanyName = team.CompanyName oldTeam.AllowedDomains = team.AllowedDomains //oldTeam.Type = team.Type if result := <-Srv.Store.Team().Update(oldTeam); result.Err != nil { c.Err = result.Err return } oldTeam.Sanitize() w.Write([]byte(oldTeam.ToJson())) }
func createTeam(c *Context, w http.ResponseWriter, r *http.Request) { team := model.TeamFromJson(r.Body) if team == nil { c.SetInvalidParam("createTeam", "team") return } var user *model.User if len(c.Session.UserId) > 0 { uchan := app.Srv.Store.User().Get(c.Session.UserId) if result := <-uchan; result.Err != nil { c.Err = result.Err return } else { user = result.Data.(*model.User) team.Email = user.Email } } if !isTeamCreationAllowed(c, team.Email) { return } rteam, err := app.CreateTeam(team) if err != nil { c.Err = err return } if user != nil { err := app.JoinUserToTeam(team, user) if err != nil { c.Err = err return } } w.Write([]byte(rteam.ToJson())) }
func createTeam(c *Context, w http.ResponseWriter, r *http.Request) { team := model.TeamFromJson(r.Body) if team == nil { c.SetInvalidParam("createTeam", "team") return } if utils.Cfg.ServiceSettings.Mode != utils.MODE_DEV { c.Err = model.NewAppError("createTeam", "The mode does not allow network creation without a valid invite", "") return } if result := <-Srv.Store.Team().Save(team); result.Err != nil { c.Err = result.Err return } else { rteam := result.Data.(*model.Team) channel := &model.Channel{DisplayName: "Town Square", Name: "town-square", Type: model.CHANNEL_OPEN, TeamId: rteam.Id} if _, err := CreateChannel(c, channel, r.URL.Path, false); err != nil { c.Err = err return } if rteam.AllowValet { CreateValet(c, rteam) if c.Err != nil { return } } w.Write([]byte(rteam.ToJson())) } }