@@ -86,18 +86,7 @@ func TeamsAction(ctx *context.Context) {
86
86
return
87
87
}
88
88
}
89
-
90
- redirect := ctx .Org .OrgLink + "/teams/"
91
- if isOrgMember , err := org_model .IsOrganizationMember (ctx , ctx .Org .Organization .ID , ctx .Doer .ID ); err != nil {
92
- ctx .ServerError ("IsOrganizationMember" , err )
93
- return
94
- } else if ! isOrgMember {
95
- redirect = setting .AppSubURL + "/"
96
- }
97
- ctx .JSON (http .StatusOK ,
98
- map [string ]any {
99
- "redirect" : redirect ,
100
- })
89
+ checkIsOrgMemberAndRedirect (ctx , ctx .Org .OrgLink + "/teams/" )
101
90
return
102
91
case "remove" :
103
92
if ! ctx .Org .IsOwner {
@@ -124,10 +113,7 @@ func TeamsAction(ctx *context.Context) {
124
113
return
125
114
}
126
115
}
127
- ctx .JSON (http .StatusOK ,
128
- map [string ]any {
129
- "redirect" : ctx .Org .OrgLink + "/teams/" + url .PathEscape (ctx .Org .Team .LowerName ),
130
- })
116
+ checkIsOrgMemberAndRedirect (ctx , ctx .Org .OrgLink + "/teams/" + url .PathEscape (ctx .Org .Team .LowerName ))
131
117
return
132
118
case "add" :
133
119
if ! ctx .Org .IsOwner {
@@ -217,6 +203,20 @@ func TeamsAction(ctx *context.Context) {
217
203
}
218
204
}
219
205
206
+ func checkIsOrgMemberAndRedirect (ctx * context.Context , defaultRedirect string ) {
207
+ if isOrgMember , err := org_model .IsOrganizationMember (ctx , ctx .Org .Organization .ID , ctx .Doer .ID ); err != nil {
208
+ ctx .ServerError ("IsOrganizationMember" , err )
209
+ return
210
+ } else if ! isOrgMember {
211
+ if ctx .Org .Organization .Visibility .IsPrivate () {
212
+ defaultRedirect = setting .AppSubURL + "/"
213
+ } else {
214
+ defaultRedirect = ctx .Org .Organization .HomeLink ()
215
+ }
216
+ }
217
+ ctx .JSONRedirect (defaultRedirect )
218
+ }
219
+
220
220
// TeamsRepoAction operate team's repository
221
221
func TeamsRepoAction (ctx * context.Context ) {
222
222
if ! ctx .Org .IsOwner {
0 commit comments