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

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

@ -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":