Fix 404 error when leaving the last private org team (#24322)

If the user only belongs to one org team and the org is private, 
leaving the org team will redirect to `ctx.Org.OrgLink + "/teams/"`
which is inaccessible.

So we need to check whether the user still belongs to the org.
This commit is contained in:
yp05327 2023-04-27 01:27:46 +09:00 committed by GitHub
parent f1a4330306
commit df9a62b5f9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -86,9 +86,17 @@ func TeamsAction(ctx *context.Context) {
return return
} }
} }
redirect := ctx.Org.OrgLink + "/teams/"
if isOrgMember, err := org_model.IsOrganizationMember(ctx, ctx.Org.Organization.ID, ctx.Doer.ID); err != nil {
ctx.ServerError("IsOrganizationMember", err)
return
} else if !isOrgMember {
redirect = setting.AppSubURL + "/"
}
ctx.JSON(http.StatusOK, ctx.JSON(http.StatusOK,
map[string]interface{}{ map[string]interface{}{
"redirect": ctx.Org.OrgLink + "/teams/", "redirect": redirect,
}) })
return return
case "remove": case "remove":