More robust team exists api endpoint (#12130)
* More robust team exists api endpoint * Making the code more concise * Better handling of errors on GetTeamByName
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
89b7b2d99b
Коммит
8cea561ba6
29
api4/team.go
29
api4/team.go
@@ -812,14 +812,31 @@ func teamExists(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
resp := make(map[string]bool)
|
||||
|
||||
if _, err := c.App.GetTeamByName(c.Params.TeamName); err != nil {
|
||||
resp["exists"] = false
|
||||
} else {
|
||||
resp["exists"] = true
|
||||
team, err := c.App.GetTeamByName(c.Params.TeamName)
|
||||
if err != nil && err.StatusCode != http.StatusNotFound {
|
||||
c.Err = err
|
||||
return
|
||||
}
|
||||
|
||||
exists := false
|
||||
|
||||
if team != nil {
|
||||
var teamMember *model.TeamMember
|
||||
teamMember, err = c.App.GetTeamMember(team.Id, c.App.Session.UserId)
|
||||
if err != nil && err.StatusCode != http.StatusNotFound {
|
||||
c.Err = err
|
||||
return
|
||||
}
|
||||
|
||||
// Verify that the user can see the team (be a member or have the permission to list the team)
|
||||
if (teamMember != nil && teamMember.DeleteAt == 0) ||
|
||||
(team.AllowOpenInvite && c.App.SessionHasPermissionTo(c.App.Session, model.PERMISSION_LIST_PUBLIC_TEAMS)) ||
|
||||
(!team.AllowOpenInvite && c.App.SessionHasPermissionTo(c.App.Session, model.PERMISSION_LIST_PRIVATE_TEAMS)) {
|
||||
exists = true
|
||||
}
|
||||
}
|
||||
|
||||
resp := map[string]bool{"exists": exists}
|
||||
w.Write([]byte(model.MapBoolToJson(resp)))
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user